From 5feef4361354c381d3ee2be744fb7e1cdc3c3618 Mon Sep 17 00:00:00 2001 From: matheusalcantarazup <84723211+matheusalcantarazup@users.noreply.github.com> Date: Tue, 21 Sep 2021 12:19:47 -0300 Subject: [PATCH] tests: change example dir to be a git submodule (#582) This commit remove the example directory and add a git submodule to horusec example repository. This commit also update the e2e and test workflow to clone submodules. Co-authored-by: Matheus Alcantara --- .github/workflows/e2e.yml | 2 + .github/workflows/test.yml | 2 + .gitmodules | 3 + examples | 1 + examples/c/example1/test.cpp | 69 - .../example1/NetCoreVulnerabilities.sln | 34 - .../example1/NetCoreVulnerabilities/Errors.cs | 15 - .../NetCoreVulnerabilities.csproj | 16 - .../NetCoreVulnerabilities/Program.cs | 12 - .../NetCoreVulnerabilities/Vulnerabilities.cs | 47 - .../example1/lib/data/database_helper.dart | 43 - .../example1/lib/data/query/user_ctr.dart | 42 - examples/dart/example1/lib/main.dart | 20 - examples/dart/example1/lib/models/user.dart | 25 - .../dart/example1/lib/screens/home_pages.dart | 226 --- .../lib/services/request/user_request.dart | 23 - .../lib/services/response/user_response.dart | 59 - .../dart/example1/lib/utils/cripto_util.dart | 20 - .../dart/example1/lib/utils/network_util.dart | 14 - examples/elixir/example1/config/dev.exs | 64 - examples/elixir/example1/config/prod.exs | 72 - examples/elixir/example1/config/web.exs | 7 - .../elixir/example1/lib/built_with_elixir.ex | 9 - .../lib/built_with_elixir/application.ex | 33 - .../lib/built_with_elixir/projects/post.ex | 43 - .../lib/built_with_elixir/projects/posts.ex | 133 -- .../example1/lib/built_with_elixir/repo.ex | 11 - .../lib/built_with_elixir/utils/cloudinary.ex | 9 - .../example1/lib/built_with_elixir_web.ex | 68 - .../channels/user_socket.ex | 37 - .../controllers/fallback_controller.ex | 20 - .../controllers/page_controller.ex | 7 - .../controllers/post_controller.ex | 69 - .../lib/built_with_elixir_web/endpoint.ex | 65 - .../lib/built_with_elixir_web/gettext.ex | 24 - .../lib/built_with_elixir_web/router.ex | 28 - .../templates/layout/app.html.eex | 113 -- .../templates/page/index.html.eex | 9 - .../views/changeset_view.ex | 19 - .../views/error_helpers.ex | 40 - .../built_with_elixir_web/views/error_view.ex | 17 - .../views/layout_view.ex | 3 - .../built_with_elixir_web/views/page_view.ex | 3 - .../built_with_elixir_web/views/post_view.ex | 26 - examples/elixir/example1/mix.exs | 67 - examples/elixir/example1/mix.lock | 28 - .../priv/gettext/en/LC_MESSAGES/errors.po | 97 -- .../elixir/example1/priv/gettext/errors.pot | 95 -- .../elixir/example1/priv/repo/dev-posts.json | 1002 -------------- .../elixir/example1/priv/repo/dev-seed.exs | 19 - .../20180409215300_create_posts.exs | 16 - ...410150145_add_image_url_to_posts_table.exs | 9 - ...939_update_description_length_on_posts.exs | 9 - ...dd_published_status_and_email_to_posts.exs | 10 - .../elixir/example1/priv/repo/prod-posts.json | 245 ---- .../elixir/example1/priv/repo/prod-seed.exs | 19 - .../built_with_elixir/posts/posts_test.exs | 156 --- .../utils/cloudinary_test.exs | 24 - .../controllers/page_controller_test.exs | 10 - .../controllers/post_controller_test.exs | 159 --- .../views/error_view_test.exs | 20 - .../views/layout_view_test.exs | 3 - .../views/page_view_test.exs | 3 - .../elixir/example1/test/stubs/cloudini.ex | 19 - .../example1/test/support/channel_case.ex | 37 - .../elixir/example1/test/support/conn_case.ex | 38 - .../elixir/example1/test/support/data_case.ex | 53 - examples/elixir/example1/test/test_helper.exs | 5 - .../go/example1/api/routes/healthcheck.go | 27 - examples/go/example1/api/server.go | 39 - examples/go/example1/api/util/util.go | 47 - examples/go/example1/go.mod | 131 -- examples/go/example1/go.sum | 1212 ----------------- examples/go/example2/main.go | 34 - examples/hcl/example1/main.tf | 20 - examples/horusec-config.json | 122 -- examples/java/example1/.classpath | 44 - examples/java/example1/.project | 23 - examples/java/example1/pom.xml | 37 - .../src/main/java/com/mycompany/app/App.java | 16 - .../test/java/com/mycompany/app/AppTest.java | 38 - examples/javascript/example1/app.js | 36 - .../javascript/example1/package-lock.json | 166 --- examples/javascript/example1/package.json | 22 - examples/javascript/example2/app.js | 43 - examples/javascript/example2/package.json | 22 - examples/javascript/example2/yarn.lock | 175 --- examples/javascript/example3/app.js | 112 -- examples/javascript/example3/auth.js | 28 - examples/javascript/example3/config.js | 64 - examples/javascript/example3/dummy.js | 84 -- examples/javascript/example3/init_db.js | 81 -- examples/javascript/example3/products.js | 76 -- examples/javascript/example4/test.js | 18 - examples/kotlin/example1/pom.xml | 128 -- .../example1/spotbugs-security-exclude.xml | 2 - .../example1/spotbugs-security-include.xml | 5 - .../kotlin/example1/src/main/kotlin/Hello.kt | 152 --- .../example1/src/test/kotlin/HelloTest.kt | 8 - .../deployments/certificates/ca-key.txt | 54 - .../example1/deployments/certificates/ca.txt | 32 - .../deployments/certificates/client-cert.txt | 30 - .../deployments/certificates/client-key.txt | 51 - .../deployments/certificates/server-cert.txt | 30 - .../deployments/certificates/server-key.txt | 51 - .../leaks/example1/deployments/daemon.json | 7 - .../example1/deployments/docker-compose.yml | 106 -- .../deployments/dockerfiles/api.Dockerfile | 4 - .../deployments/dockerfiles/bandit/Dockerfile | 14 - .../dockerfiles/brakeman/Dockerfile | 11 - .../deployments/dockerfiles/db.Dockerfile | 3 - .../deployments/dockerfiles/enry/Dockerfile | 13 - .../dockerfiles/gitauthors/Dockerfile | 4 - .../dockerfiles/gitleaks/Dockerfile | 6 - .../deployments/dockerfiles/gosec/Dockerfile | 6 - .../dockerfiles/npmaudit/Dockerfile | 12 - .../deployments/dockerfiles/safety/Dockerfile | 14 - .../dockerfiles/spotbugs/Dockerfile | 40 - .../dockerfiles/spotbugs/exclude.xml | 34 - .../dockerfiles/spotbugs/mvn-entrypoint.sh | 48 - .../dockerfiles/spotbugs/settings-docker.xml | 5 - .../deployments/scripts/build-containers.sh | 25 - .../scripts/check-containers-version.sh | 35 - .../deployments/scripts/create-certs.sh | 149 -- .../deployments/scripts/generate-env.sh | 25 - .../scripts/generate-local-token.sh | 25 - .../deployments/scripts/push-containers.sh | 46 - .../scripts/restart-huskyci-api.sh | 31 - .../deployments/scripts/run-create-certs.sh | 26 - .../example2/deployments/docker-compose.yaml | 28 - examples/nginx/example1/server.nginx | 130 -- examples/php/example1/wp-config.php | 90 -- examples/python/example1/main.py | 11 - examples/python/example1/tests/test.py | 1 - examples/python/example2/main.py | 9 - examples/python/example2/requirements.txt | 4 - examples/ruby/example1/.gitignore | 33 - examples/ruby/example1/.ruby-version | 1 - examples/ruby/example1/Gemfile | 54 - examples/ruby/example1/Gemfile.lock | 226 --- examples/ruby/example1/README.md | 24 - examples/ruby/example1/Rakefile | 6 - .../example1/app/assets/config/manifest.js | 18 - .../ruby/example1/app/assets/images/.keep | 0 .../app/assets/stylesheets/application.css | 15 - .../app/channels/application_cable/channel.rb | 4 - .../channels/application_cable/connection.rb | 4 - .../app/controllers/application_controller.rb | 5 - .../example1/app/controllers/concerns/.keep | 0 .../app/helpers/application_helper.rb | 2 - .../app/javascript/channels/consumer.js | 22 - .../example1/app/javascript/channels/index.js | 21 - .../app/javascript/packs/application.js | 29 - .../ruby/example1/app/jobs/application_job.rb | 7 - .../app/mailers/application_mailer.rb | 4 - .../example1/app/models/application_record.rb | 3 - .../ruby/example1/app/models/concerns/.keep | 0 .../app/views/layouts/application.html.erb | 16 - .../app/views/layouts/mailer.html.erb | 13 - .../app/views/layouts/mailer.text.erb | 1 - examples/ruby/example1/config.ru | 6 - examples/ruby/example1/config/application.rb | 22 - examples/ruby/example1/config/boot.rb | 4 - examples/ruby/example1/config/cable.yml | 24 - .../ruby/example1/config/credentials.yml.enc | 1 - examples/ruby/example1/config/database.yml | 39 - examples/ruby/example1/config/environment.rb | 5 - .../config/environments/development.rb | 76 -- .../config/environments/production.rb | 120 -- .../ruby/example1/config/environments/test.rb | 60 - .../application_controller_renderer.rb | 8 - .../example1/config/initializers/assets.rb | 14 - .../initializers/backtrace_silencers.rb | 8 - .../initializers/content_security_policy.rb | 30 - .../config/initializers/cookies_serializer.rb | 5 - .../initializers/filter_parameter_logging.rb | 6 - .../config/initializers/inflections.rb | 16 - .../config/initializers/mime_types.rb | 4 - .../config/initializers/permissions_policy.rb | 11 - .../config/initializers/wrap_parameters.rb | 14 - examples/ruby/example1/config/locales/en.yml | 47 - examples/ruby/example1/config/master.key | 1 - examples/ruby/example1/config/puma.rb | 43 - examples/ruby/example1/config/routes.rb | 3 - examples/ruby/example1/config/spring.rb | 6 - examples/ruby/example1/config/storage.yml | 48 - examples/ruby/example1/db/seeds.rb | 7 - examples/ruby/example1/lib/assets/.keep | 0 examples/ruby/example1/lib/tasks/.keep | 0 examples/ruby/example1/log/.keep | 0 examples/ruby/example1/package.json | 11 - examples/ruby/example1/public/404.html | 67 - examples/ruby/example1/public/422.html | 67 - examples/ruby/example1/public/500.html | 66 - .../public/apple-touch-icon-precomposed.png | 0 .../ruby/example1/public/apple-touch-icon.png | 0 examples/ruby/example1/public/favicon.ico | 0 examples/ruby/example1/public/robots.txt | 1 - examples/ruby/example1/storage/.keep | 0 .../test/application_system_test_case.rb | 5 - .../application_cable/connection_test.rb | 11 - examples/ruby/example1/test/controllers/.keep | 0 .../ruby/example1/test/fixtures/files/.keep | 0 examples/ruby/example1/test/helpers/.keep | 0 examples/ruby/example1/test/integration/.keep | 0 examples/ruby/example1/test/mailers/.keep | 0 examples/ruby/example1/test/models/.keep | 0 examples/ruby/example1/test/system/.keep | 0 examples/ruby/example1/test/test_helper.rb | 13 - .../Source/Container/HTMLViewController.swift | 31 - .../example/Source/Container/HintVC.swift | 56 - .../XSS/CrossSiteScriptingExerciseVC.swift | 11 - .../BrokenCryptographyExerciseVC.swift | 42 - examples/yaml/example1/example.yaml | 23 - 214 files changed, 8 insertions(+), 9499 deletions(-) create mode 100644 .gitmodules create mode 160000 examples delete mode 100644 examples/c/example1/test.cpp delete mode 100644 examples/csharp/example1/NetCoreVulnerabilities.sln delete mode 100644 examples/csharp/example1/NetCoreVulnerabilities/Errors.cs delete mode 100644 examples/csharp/example1/NetCoreVulnerabilities/NetCoreVulnerabilities.csproj delete mode 100644 examples/csharp/example1/NetCoreVulnerabilities/Program.cs delete mode 100644 examples/csharp/example1/NetCoreVulnerabilities/Vulnerabilities.cs delete mode 100644 examples/dart/example1/lib/data/database_helper.dart delete mode 100644 examples/dart/example1/lib/data/query/user_ctr.dart delete mode 100644 examples/dart/example1/lib/main.dart delete mode 100644 examples/dart/example1/lib/models/user.dart delete mode 100644 examples/dart/example1/lib/screens/home_pages.dart delete mode 100644 examples/dart/example1/lib/services/request/user_request.dart delete mode 100644 examples/dart/example1/lib/services/response/user_response.dart delete mode 100644 examples/dart/example1/lib/utils/cripto_util.dart delete mode 100644 examples/dart/example1/lib/utils/network_util.dart delete mode 100644 examples/elixir/example1/config/dev.exs delete mode 100644 examples/elixir/example1/config/prod.exs delete mode 100644 examples/elixir/example1/config/web.exs delete mode 100644 examples/elixir/example1/lib/built_with_elixir.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir/application.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir/projects/post.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir/projects/posts.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir/repo.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir/utils/cloudinary.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/channels/user_socket.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/controllers/fallback_controller.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/controllers/page_controller.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/controllers/post_controller.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/endpoint.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/gettext.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/router.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/templates/layout/app.html.eex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/templates/page/index.html.eex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/views/changeset_view.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/views/error_helpers.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/views/error_view.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/views/layout_view.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/views/page_view.ex delete mode 100644 examples/elixir/example1/lib/built_with_elixir_web/views/post_view.ex delete mode 100644 examples/elixir/example1/mix.exs delete mode 100644 examples/elixir/example1/mix.lock delete mode 100644 examples/elixir/example1/priv/gettext/en/LC_MESSAGES/errors.po delete mode 100644 examples/elixir/example1/priv/gettext/errors.pot delete mode 100644 examples/elixir/example1/priv/repo/dev-posts.json delete mode 100644 examples/elixir/example1/priv/repo/dev-seed.exs delete mode 100644 examples/elixir/example1/priv/repo/migrations/20180409215300_create_posts.exs delete mode 100644 examples/elixir/example1/priv/repo/migrations/20180410150145_add_image_url_to_posts_table.exs delete mode 100644 examples/elixir/example1/priv/repo/migrations/20180416212939_update_description_length_on_posts.exs delete mode 100644 examples/elixir/example1/priv/repo/migrations/20180421045402_add_published_status_and_email_to_posts.exs delete mode 100644 examples/elixir/example1/priv/repo/prod-posts.json delete mode 100644 examples/elixir/example1/priv/repo/prod-seed.exs delete mode 100644 examples/elixir/example1/test/built_with_elixir/posts/posts_test.exs delete mode 100644 examples/elixir/example1/test/built_with_elixir/utils/cloudinary_test.exs delete mode 100644 examples/elixir/example1/test/built_with_elixir_web/controllers/page_controller_test.exs delete mode 100644 examples/elixir/example1/test/built_with_elixir_web/controllers/post_controller_test.exs delete mode 100644 examples/elixir/example1/test/built_with_elixir_web/views/error_view_test.exs delete mode 100644 examples/elixir/example1/test/built_with_elixir_web/views/layout_view_test.exs delete mode 100644 examples/elixir/example1/test/built_with_elixir_web/views/page_view_test.exs delete mode 100644 examples/elixir/example1/test/stubs/cloudini.ex delete mode 100644 examples/elixir/example1/test/support/channel_case.ex delete mode 100644 examples/elixir/example1/test/support/conn_case.ex delete mode 100644 examples/elixir/example1/test/support/data_case.ex delete mode 100644 examples/elixir/example1/test/test_helper.exs delete mode 100644 examples/go/example1/api/routes/healthcheck.go delete mode 100644 examples/go/example1/api/server.go delete mode 100644 examples/go/example1/api/util/util.go delete mode 100644 examples/go/example1/go.mod delete mode 100644 examples/go/example1/go.sum delete mode 100644 examples/go/example2/main.go delete mode 100644 examples/hcl/example1/main.tf delete mode 100644 examples/horusec-config.json delete mode 100644 examples/java/example1/.classpath delete mode 100644 examples/java/example1/.project delete mode 100644 examples/java/example1/pom.xml delete mode 100644 examples/java/example1/src/main/java/com/mycompany/app/App.java delete mode 100644 examples/java/example1/src/test/java/com/mycompany/app/AppTest.java delete mode 100644 examples/javascript/example1/app.js delete mode 100644 examples/javascript/example1/package-lock.json delete mode 100644 examples/javascript/example1/package.json delete mode 100644 examples/javascript/example2/app.js delete mode 100644 examples/javascript/example2/package.json delete mode 100644 examples/javascript/example2/yarn.lock delete mode 100644 examples/javascript/example3/app.js delete mode 100644 examples/javascript/example3/auth.js delete mode 100644 examples/javascript/example3/config.js delete mode 100644 examples/javascript/example3/dummy.js delete mode 100644 examples/javascript/example3/init_db.js delete mode 100644 examples/javascript/example3/products.js delete mode 100644 examples/javascript/example4/test.js delete mode 100644 examples/kotlin/example1/pom.xml delete mode 100644 examples/kotlin/example1/spotbugs-security-exclude.xml delete mode 100644 examples/kotlin/example1/spotbugs-security-include.xml delete mode 100644 examples/kotlin/example1/src/main/kotlin/Hello.kt delete mode 100644 examples/kotlin/example1/src/test/kotlin/HelloTest.kt delete mode 100644 examples/leaks/example1/deployments/certificates/ca-key.txt delete mode 100644 examples/leaks/example1/deployments/certificates/ca.txt delete mode 100644 examples/leaks/example1/deployments/certificates/client-cert.txt delete mode 100644 examples/leaks/example1/deployments/certificates/client-key.txt delete mode 100644 examples/leaks/example1/deployments/certificates/server-cert.txt delete mode 100644 examples/leaks/example1/deployments/certificates/server-key.txt delete mode 100644 examples/leaks/example1/deployments/daemon.json delete mode 100644 examples/leaks/example1/deployments/docker-compose.yml delete mode 100644 examples/leaks/example1/deployments/dockerfiles/api.Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/bandit/Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/brakeman/Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/db.Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/enry/Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/gitauthors/Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/gitleaks/Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/gosec/Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/npmaudit/Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/safety/Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/spotbugs/Dockerfile delete mode 100644 examples/leaks/example1/deployments/dockerfiles/spotbugs/exclude.xml delete mode 100644 examples/leaks/example1/deployments/dockerfiles/spotbugs/mvn-entrypoint.sh delete mode 100644 examples/leaks/example1/deployments/dockerfiles/spotbugs/settings-docker.xml delete mode 100755 examples/leaks/example1/deployments/scripts/build-containers.sh delete mode 100755 examples/leaks/example1/deployments/scripts/check-containers-version.sh delete mode 100755 examples/leaks/example1/deployments/scripts/create-certs.sh delete mode 100755 examples/leaks/example1/deployments/scripts/generate-env.sh delete mode 100755 examples/leaks/example1/deployments/scripts/generate-local-token.sh delete mode 100755 examples/leaks/example1/deployments/scripts/push-containers.sh delete mode 100755 examples/leaks/example1/deployments/scripts/restart-huskyci-api.sh delete mode 100755 examples/leaks/example1/deployments/scripts/run-create-certs.sh delete mode 100644 examples/leaks/example2/deployments/docker-compose.yaml delete mode 100644 examples/nginx/example1/server.nginx delete mode 100644 examples/php/example1/wp-config.php delete mode 100644 examples/python/example1/main.py delete mode 100644 examples/python/example1/tests/test.py delete mode 100644 examples/python/example2/main.py delete mode 100644 examples/python/example2/requirements.txt delete mode 100644 examples/ruby/example1/.gitignore delete mode 100644 examples/ruby/example1/.ruby-version delete mode 100644 examples/ruby/example1/Gemfile delete mode 100644 examples/ruby/example1/Gemfile.lock delete mode 100644 examples/ruby/example1/README.md delete mode 100644 examples/ruby/example1/Rakefile delete mode 100644 examples/ruby/example1/app/assets/config/manifest.js delete mode 100644 examples/ruby/example1/app/assets/images/.keep delete mode 100644 examples/ruby/example1/app/assets/stylesheets/application.css delete mode 100644 examples/ruby/example1/app/channels/application_cable/channel.rb delete mode 100644 examples/ruby/example1/app/channels/application_cable/connection.rb delete mode 100644 examples/ruby/example1/app/controllers/application_controller.rb delete mode 100644 examples/ruby/example1/app/controllers/concerns/.keep delete mode 100644 examples/ruby/example1/app/helpers/application_helper.rb delete mode 100644 examples/ruby/example1/app/javascript/channels/consumer.js delete mode 100644 examples/ruby/example1/app/javascript/channels/index.js delete mode 100644 examples/ruby/example1/app/javascript/packs/application.js delete mode 100644 examples/ruby/example1/app/jobs/application_job.rb delete mode 100644 examples/ruby/example1/app/mailers/application_mailer.rb delete mode 100644 examples/ruby/example1/app/models/application_record.rb delete mode 100644 examples/ruby/example1/app/models/concerns/.keep delete mode 100644 examples/ruby/example1/app/views/layouts/application.html.erb delete mode 100644 examples/ruby/example1/app/views/layouts/mailer.html.erb delete mode 100644 examples/ruby/example1/app/views/layouts/mailer.text.erb delete mode 100644 examples/ruby/example1/config.ru delete mode 100644 examples/ruby/example1/config/application.rb delete mode 100644 examples/ruby/example1/config/boot.rb delete mode 100644 examples/ruby/example1/config/cable.yml delete mode 100644 examples/ruby/example1/config/credentials.yml.enc delete mode 100644 examples/ruby/example1/config/database.yml delete mode 100644 examples/ruby/example1/config/environment.rb delete mode 100644 examples/ruby/example1/config/environments/development.rb delete mode 100644 examples/ruby/example1/config/environments/production.rb delete mode 100644 examples/ruby/example1/config/environments/test.rb delete mode 100644 examples/ruby/example1/config/initializers/application_controller_renderer.rb delete mode 100644 examples/ruby/example1/config/initializers/assets.rb delete mode 100644 examples/ruby/example1/config/initializers/backtrace_silencers.rb delete mode 100644 examples/ruby/example1/config/initializers/content_security_policy.rb delete mode 100644 examples/ruby/example1/config/initializers/cookies_serializer.rb delete mode 100644 examples/ruby/example1/config/initializers/filter_parameter_logging.rb delete mode 100644 examples/ruby/example1/config/initializers/inflections.rb delete mode 100644 examples/ruby/example1/config/initializers/mime_types.rb delete mode 100644 examples/ruby/example1/config/initializers/permissions_policy.rb delete mode 100644 examples/ruby/example1/config/initializers/wrap_parameters.rb delete mode 100644 examples/ruby/example1/config/locales/en.yml delete mode 100644 examples/ruby/example1/config/master.key delete mode 100644 examples/ruby/example1/config/puma.rb delete mode 100644 examples/ruby/example1/config/routes.rb delete mode 100644 examples/ruby/example1/config/spring.rb delete mode 100644 examples/ruby/example1/config/storage.yml delete mode 100644 examples/ruby/example1/db/seeds.rb delete mode 100644 examples/ruby/example1/lib/assets/.keep delete mode 100644 examples/ruby/example1/lib/tasks/.keep delete mode 100644 examples/ruby/example1/log/.keep delete mode 100644 examples/ruby/example1/package.json delete mode 100644 examples/ruby/example1/public/404.html delete mode 100644 examples/ruby/example1/public/422.html delete mode 100644 examples/ruby/example1/public/500.html delete mode 100644 examples/ruby/example1/public/apple-touch-icon-precomposed.png delete mode 100644 examples/ruby/example1/public/apple-touch-icon.png delete mode 100644 examples/ruby/example1/public/favicon.ico delete mode 100644 examples/ruby/example1/public/robots.txt delete mode 100644 examples/ruby/example1/storage/.keep delete mode 100644 examples/ruby/example1/test/application_system_test_case.rb delete mode 100644 examples/ruby/example1/test/channels/application_cable/connection_test.rb delete mode 100644 examples/ruby/example1/test/controllers/.keep delete mode 100644 examples/ruby/example1/test/fixtures/files/.keep delete mode 100644 examples/ruby/example1/test/helpers/.keep delete mode 100644 examples/ruby/example1/test/integration/.keep delete mode 100644 examples/ruby/example1/test/mailers/.keep delete mode 100644 examples/ruby/example1/test/models/.keep delete mode 100644 examples/ruby/example1/test/system/.keep delete mode 100644 examples/ruby/example1/test/test_helper.rb delete mode 100755 examples/swift/example1/example/example/Source/Container/HTMLViewController.swift delete mode 100755 examples/swift/example1/example/example/Source/Container/HintVC.swift delete mode 100644 examples/swift/example1/example/example/Source/Exercises/Injection Flaws/XSS/CrossSiteScriptingExerciseVC.swift delete mode 100644 examples/swift/example1/example/example/Source/Exercises/Key Management/Hard Coded Keys/BrokenCryptographyExerciseVC.swift delete mode 100644 examples/yaml/example1/example.yaml diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 2bd9fc89c..e5fcc0cac 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -31,5 +31,7 @@ jobs: id: go - name: Check out code uses: actions/checkout@v2 + with: + submodules: true - name: e2e run: make test-e2e diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5f7ed96d5..d89b14010 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,6 +22,8 @@ jobs: if: "!contains(github.event.head_commit.message, '[skip ci]')" steps: - uses: actions/checkout@v2 + with: + submodules: true - uses: actions/setup-go@v2 with: go-version: 1.17 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..eb7fbc8d3 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "examples"] + path = examples + url = https://github.com/ZupIT/horusec-examples-vulnerabilities diff --git a/examples b/examples new file mode 160000 index 000000000..36c5c9b0e --- /dev/null +++ b/examples @@ -0,0 +1 @@ +Subproject commit 36c5c9b0e2591f2c1991dd8f45036bc7fb0b2dd5 diff --git a/examples/c/example1/test.cpp b/examples/c/example1/test.cpp deleted file mode 100644 index ef5219289..000000000 --- a/examples/c/example1/test.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -using namespace std; - -int64_t getTime() -{ - struct timeval tval; - gettimeofday(&tval, NULL); - return tval.tv_sec * 1000000LL + tval.tv_usec; -} - -int main(int argc, const char *argv[]) -{ - //file<> fdoc("track_orig.xml"); - string xml_str, json_str; - ifstream inf; - ofstream outf; - ostringstream oss; - char BOM[4] = {(char)0xEF, (char)0xBB, (char)0xBF, '\0'}; /*BOM String*/ - int64_t start_time, end_time; - - inf.open("test.xml"); - outf.open("test.xml"); - oss.str(""); - oss << inf.rdbuf(); - xml_str = oss.str(); - inf.close(); - start_time = getTime(); - json_str = xml2json(xml_str.c_str()); - end_time = getTime(); - cout << "test: " << end_time - start_time << endl; - outf << BOM << json_str; - outf.close(); - - inf.open("test.xml"); - outf.open("test.xml"); - oss.str(""); - oss << inf.rdbuf(); - xml_str = oss.str(); - inf.close(); - start_time = getTime(); - json_str = xml2json(xml_str.c_str()); - end_time = getTime(); - cout << "test: " << end_time - start_time << endl; - outf << BOM << json_str; - outf.close(); - - inf.open("test.xml"); - outf.open("test.xml"); - oss.str(""); - oss << inf.rdbuf(); - xml_str = oss.str(); - inf.close(); - start_time = getTime(); - json_str = xml2json(xml_str.c_str()); - end_time = getTime(); - cout << "test: " << end_time - start_time << endl; - outf << BOM << json_str; - outf.close(); - - return 0; -} diff --git a/examples/csharp/example1/NetCoreVulnerabilities.sln b/examples/csharp/example1/NetCoreVulnerabilities.sln deleted file mode 100644 index f5be25974..000000000 --- a/examples/csharp/example1/NetCoreVulnerabilities.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26124.0 -MinimumVisualStudioVersion = 15.0.26124.0 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCoreVulnerabilities", "NetCoreVulnerabilities\NetCoreVulnerabilities.csproj", "{982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Debug|x64.ActiveCfg = Debug|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Debug|x64.Build.0 = Debug|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Debug|x86.ActiveCfg = Debug|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Debug|x86.Build.0 = Debug|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Release|Any CPU.Build.0 = Release|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Release|x64.ActiveCfg = Release|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Release|x64.Build.0 = Release|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Release|x86.ActiveCfg = Release|Any CPU - {982D3426-4204-4FF2-9DB5-EDCC25EFB9A8}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/examples/csharp/example1/NetCoreVulnerabilities/Errors.cs b/examples/csharp/example1/NetCoreVulnerabilities/Errors.cs deleted file mode 100644 index b3b2101f4..000000000 --- a/examples/csharp/example1/NetCoreVulnerabilities/Errors.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace NetCoreVulnerabilities -{ - public class Errors - { - public void NotUsedVar() - { - var neverUsedVar1 = ""; - } - - public void NotUsedVar2() - { - var neverUsedVar2 = ""; - } - } -} diff --git a/examples/csharp/example1/NetCoreVulnerabilities/NetCoreVulnerabilities.csproj b/examples/csharp/example1/NetCoreVulnerabilities/NetCoreVulnerabilities.csproj deleted file mode 100644 index d7e858075..000000000 --- a/examples/csharp/example1/NetCoreVulnerabilities/NetCoreVulnerabilities.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - Exe - netcoreapp3.1 - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/csharp/example1/NetCoreVulnerabilities/Program.cs b/examples/csharp/example1/NetCoreVulnerabilities/Program.cs deleted file mode 100644 index 53603ba00..000000000 --- a/examples/csharp/example1/NetCoreVulnerabilities/Program.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace NetCoreVulnerabilities -{ - class Program - { - static void Main(string[] args) - { - Console.WriteLine("Hello World!"); - } - } -} diff --git a/examples/csharp/example1/NetCoreVulnerabilities/Vulnerabilities.cs b/examples/csharp/example1/NetCoreVulnerabilities/Vulnerabilities.cs deleted file mode 100644 index ae3c1a7d1..000000000 --- a/examples/csharp/example1/NetCoreVulnerabilities/Vulnerabilities.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Net; -using System.Net.Mail; -using System.Security.Cryptography; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; - -namespace NetCoreVulnerabilities -{ - public class NetCoreVulnerabilities : ControllerBase - { - public void WeakHashingFunction() - { - var str = new byte[] { }; - var hashProvider = new SHA1CryptoServiceProvider(); - var hash = hashProvider.ComputeHash(str); - } - - public void HardcodedPassword() - { - var client = new SmtpClient(); - client.Credentials = new NetworkCredential("test@test.com", "testpassword"); - var mm = new MailMessage("test", "test", "test", "test"); - client.Send(mm); - } - - public void WeakRandomNumberGenerator() - { - var rnd = new Random(); - var buffer = new byte[16]; - rnd.NextBytes(buffer); - BitConverter.ToString(buffer); - } - - public void CookieWithoutHttpOnlyFlag() - { - var cookie = new CookieOptions(); - cookie.Secure = false; - } - - [HttpGet()] - public string CrossSiteScripting(string myParam) - { - return "value " + myParam; - } - } -} \ No newline at end of file diff --git a/examples/dart/example1/lib/data/database_helper.dart b/examples/dart/example1/lib/data/database_helper.dart deleted file mode 100644 index 067b406ec..000000000 --- a/examples/dart/example1/lib/data/database_helper.dart +++ /dev/null @@ -1,43 +0,0 @@ -import 'dart:io'; -import 'dart:typed_data'; -import 'package:flutter/services.dart'; -import 'package:path/path.dart'; -import 'dart:async'; -import 'package:path_provider/path_provider.dart'; -import 'package:sqflite/sqflite.dart'; - -class DatabaseHelper { - static final DatabaseHelper _instance = new DatabaseHelper.internal(); - factory DatabaseHelper() => _instance; - - static Database _db; - - Future get db async { - if (_db != null) { - return _db; - } - _db = await initDb(); - return _db; - } - - DatabaseHelper.internal(); - - initDb() async { - - Directory documentDirectory = await getApplicationDocumentsDirectory(); - String path = join(documentDirectory.path, "data_flutter.db"); - - // Only copy if the database doesn't exist - if (FileSystemEntity.typeSync(path) == FileSystemEntityType.notFound){ - // Load database from asset and copy - ByteData data = await rootBundle.load(join('data', 'flutter.db')); - List bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes); - - // Save copied asset to documents - await new File(path).writeAsBytes(bytes); - } - - var ourDb = await openDatabase(path); - return ourDb; - } -} \ No newline at end of file diff --git a/examples/dart/example1/lib/data/query/user_ctr.dart b/examples/dart/example1/lib/data/query/user_ctr.dart deleted file mode 100644 index 7e22fe33c..000000000 --- a/examples/dart/example1/lib/data/query/user_ctr.dart +++ /dev/null @@ -1,42 +0,0 @@ -import 'package:simple_form_crud/models/user.dart'; -import 'dart:async'; -import 'package:simple_form_crud/data/database_helper.dart'; - -class UserCtr { -DatabaseHelper con = new DatabaseHelper(); - -//insertion - Future saveUser(User user) async { - var dbClient = await con.db; - int res = await dbClient.insert("User", user.toMap()); - return res; - } - - //deletion - Future deleteUser(int user) async { - var dbClient = await con.db; - int res = await dbClient.rawDelete('DELETE FROM User WHERE id = ?', [user]); - return res; - } - - Future checkUser(String user, String password) async { - var dbClient = await con.db; - var res = await dbClient.rawQuery("SELECT * FROM user WHERE username = '$user' and password = '$password'"); - - if (res.length > 0) { - return new User.fromMap(res.first); - } - - return null; - } - - Future> getAllUser() async { - var dbClient = await con.db; - var res = await dbClient.query("user"); - - List list = - res.isNotEmpty ? res.map((c) => User.fromMap(c)).toList() : null; - - return list; - } -} \ No newline at end of file diff --git a/examples/dart/example1/lib/main.dart b/examples/dart/example1/lib/main.dart deleted file mode 100644 index d2ae253a5..000000000 --- a/examples/dart/example1/lib/main.dart +++ /dev/null @@ -1,20 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:simple_form_crud/screens/home_pages.dart'; - -void main() => runApp(new MyApp()); - -final routes = { - '/home': (BuildContext context) => new HomePage(), - '/': (BuildContext context) => new HomePage(), -}; - -class MyApp extends StatelessWidget { - @override - Widget build(BuildContext context) { - return new MaterialApp( - title: 'Sqflite App', - theme: new ThemeData(primarySwatch: Colors.teal), - routes: routes, - ); - } -} \ No newline at end of file diff --git a/examples/dart/example1/lib/models/user.dart b/examples/dart/example1/lib/models/user.dart deleted file mode 100644 index f9a9ff86a..000000000 --- a/examples/dart/example1/lib/models/user.dart +++ /dev/null @@ -1,25 +0,0 @@ -class User { - int _id; - String _username; - String _password; - - User(this._username, this._password); - - User.fromMap(dynamic obj) { - this._id = obj['id']; - this._username = obj['username']; - this._password = obj['password']; - } - - String get username => _username; - String get password => _password; - int get id => _id; - - Map toMap() { - var map = new Map(); - map["id"] = _id; - map["username"] = _username; - map["password"] = _password; - return map; - } -} \ No newline at end of file diff --git a/examples/dart/example1/lib/screens/home_pages.dart b/examples/dart/example1/lib/screens/home_pages.dart deleted file mode 100644 index b893120a6..000000000 --- a/examples/dart/example1/lib/screens/home_pages.dart +++ /dev/null @@ -1,226 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:simple_form_crud/models/user.dart'; -import 'package:simple_form_crud/services/response/user_response.dart'; - -class HomePage extends StatefulWidget { - @override - _UserPageState createState() => new _UserPageState(); -} - -class _UserPageState extends State implements CreateUserCallBack,GetUserCallBack,DeleteUserCallBack { - BuildContext _ctx; - bool _isLoading = false; - final formKey = new GlobalKey(); - final scaffoldKey = new GlobalKey(); - - String _username, _password; - - CreateUserResponse _responseCreate; - GetUserResponse _responseGet; - DeleteUserResponse _responseDelete; - List listUser; - - _UserPageState() { - _responseCreate = new CreateUserResponse(this); - _responseGet = new GetUserResponse(this); - _responseDelete = new DeleteUserResponse(this); - listUser = new List(); - _responseGet.doGet(); - } - - void _submit() { - final form = formKey.currentState; - - if (form.validate()) { - setState(() { - _isLoading = true; - form.save(); - _responseCreate.doCreate(_username, _password); - }); - } - } - - void _delete(int id) { - final form = formKey.currentState; - - if (form.validate()) { - setState(() { - _isLoading = true; - _responseDelete.doDelete(id); - }); - } - } - - void _showSnackBar(String text) { - scaffoldKey.currentState.showSnackBar(new SnackBar( - content: new Text(text), - )); - } - - SingleChildScrollView dataBody() { - return SingleChildScrollView( - scrollDirection: Axis.vertical, - child: DataTable( - columns: [ - DataColumn(label: Text('Id')), - DataColumn(label: Text('Username')), - DataColumn(label: Text('Password')), - DataColumn(label: Text('Action')), - ], - rows: - listUser // Loops through dataColumnText, each iteration assigning the value to element - .map( - ((element) => DataRow( - cells: [ - DataCell(Text(element.id.toString())), //Extracting from Map element the value - DataCell(Text(element.username)), - DataCell(Text(element.password)), - DataCell( new IconButton( - icon: const Icon(Icons.delete_forever, - color: const Color(0xFF167F67)), - onPressed: () => _delete(element.id), - alignment: Alignment.centerLeft, - )), - ], - )), - ) - .toList(), - ), - ); - } - - @override - Widget build(BuildContext context) { - _ctx = context; - - var loginBtn = new RaisedButton( - onPressed: _submit, - child: new Text("Save"), - color: Colors.green, - ); - var userForm = new Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - new Form( - key: formKey, - child: new Column( - children: [ - new Padding( - padding: const EdgeInsets.all(10.0), - child: new TextFormField( - onSaved: (val) => _username = val, - decoration: new InputDecoration(labelText: "Username"), - ), - ), - new Padding( - padding: const EdgeInsets.all(10.0), - child: new TextFormField( - onSaved: (val) => _password = val, - decoration: new InputDecoration(labelText: "Password"), - ), - ) - ], - ), - ), - loginBtn - ], - ); - - return new Scaffold( - appBar: new AppBar( - title: new Text("User Page"), - ), - key: scaffoldKey, - body: new Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - verticalDirection: VerticalDirection.down, - children: [ - userForm, - Expanded( - child : dataBody(), - ), - ], - ), - ); - } - - @override - void onCreateUserError(String error) { - // TODO: implement onLoginError - _showSnackBar(error); - setState(() { - _isLoading = false; - }); - } - - @override - void onCreateUserSuccess(int user) async { - - if(user > 0){ - // TODO: implement onLoginSuccess - _responseGet.doGet(); - _showSnackBar("data has been saved successfully"); - setState(() { - _isLoading = false; - }); - }else{ - // TODO: implement onLoginSuccess - _showSnackBar("Failed, please check data"); - setState(() { - _isLoading = false; - }); - } - - } - - @override - void onGetUserError(String error) { - // TODO: implement onLoginError - _showSnackBar(error); - setState(() { - _isLoading = false; - }); - } - - @override - void onGetUserSuccess(List user) async { - - if(user != null){ - // TODO: implement onLoginSuccess - listUser = user; - setState(() {}); - }else{ - } - - } - - @override - void onDeleteUserError(String error) { - // TODO: implement onLoginError - _showSnackBar(error); - setState(() { - _isLoading = false; - }); - } - - @override - void onDeleteUserSuccess(int user) async { - - if(user > 0){ - _responseGet.doGet(); - // TODO: implement onLoginSuccess - _showSnackBar("data has been delete successfully"); - setState(() { - _isLoading = false; - }); - }else{ - // TODO: implement onLoginSuccess - _showSnackBar("Failed, please check data"); - setState(() { - _isLoading = false; - }); - } - - } -} \ No newline at end of file diff --git a/examples/dart/example1/lib/services/request/user_request.dart b/examples/dart/example1/lib/services/request/user_request.dart deleted file mode 100644 index 4b8e0f0f4..000000000 --- a/examples/dart/example1/lib/services/request/user_request.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'dart:async'; - -import 'package:simple_form_crud/models/user.dart'; -import 'package:simple_form_crud/data/query/user_ctr.dart'; - -class UserRequest { - UserCtr con = new UserCtr(); - - Future createUser(User user) { - var result = con.saveUser(user); - return result; - } - - Future> getUser() { - var result = con.getAllUser(); - return result; - } - - Future deleteUser(int user) { - var result = con.deleteUser(user); - return result; - } -} \ No newline at end of file diff --git a/examples/dart/example1/lib/services/response/user_response.dart b/examples/dart/example1/lib/services/response/user_response.dart deleted file mode 100644 index dbf3c4e73..000000000 --- a/examples/dart/example1/lib/services/response/user_response.dart +++ /dev/null @@ -1,59 +0,0 @@ -import 'package:simple_form_crud/services/request/user_request.dart'; -import 'package:simple_form_crud/models/user.dart'; - -abstract class CreateUserCallBack { - void onCreateUserSuccess(int user); - void onCreateUserError(String error); -} - -abstract class GetUserCallBack { - void onGetUserSuccess(List user); - void onGetUserError(String error); -} - -abstract class DeleteUserCallBack { - void onDeleteUserSuccess(int user); - void onDeleteUserError(String error); -} - -class CreateUserResponse { - CreateUserCallBack _callBackCreate; - UserRequest userRequest = new UserRequest(); - CreateUserResponse(this._callBackCreate); - - doCreate(String username, String password) { - var fido = User(username, password); - - userRequest - .createUser(fido) - .then((user) => _callBackCreate.onCreateUserSuccess(user)) - .catchError((onError) => _callBackCreate.onCreateUserError(onError.toString())); - } -} - -class GetUserResponse { - GetUserCallBack _callBackGet; - UserRequest userRequest = new UserRequest(); - GetUserResponse(this._callBackGet); - - doGet() { - userRequest - .getUser() - .then((user) => _callBackGet.onGetUserSuccess(user)) - .catchError((onError) => _callBackGet.onGetUserError(onError.toString())); - } -} - -class DeleteUserResponse { - DeleteUserCallBack _callBackDelete; - UserRequest userRequest = new UserRequest(); - DeleteUserResponse(this._callBackDelete); - - doDelete(int id) { - - userRequest - .deleteUser(id) - .then((user) => _callBackDelete.onDeleteUserSuccess(user)) - .catchError((onError) => _callBackDelete.onDeleteUserError(onError.toString())); - } -} \ No newline at end of file diff --git a/examples/dart/example1/lib/utils/cripto_util.dart b/examples/dart/example1/lib/utils/cripto_util.dart deleted file mode 100644 index eba85a26a..000000000 --- a/examples/dart/example1/lib/utils/cripto_util.dart +++ /dev/null @@ -1,20 +0,0 @@ -import 'package:crypto/crypto.dart'; -import 'dart:convert'; // for the utf8.encode method - -class CriptoSha1Util { - var bytes = utf8.encode("foobar"); // data being hashed - - var digest = sha1.convert(bytes); - - print("Digest as bytes: ${digest.bytes}"); - print("Digest as hex string: $digest"); -} - -class CriptoMD5Util { - var bytes = utf8.encode("foobar"); // data being hashed - - var digest = md5.convert(bytes); - - print("Digest as bytes: ${digest.bytes}"); - print("Digest as hex string: $digest"); -} \ No newline at end of file diff --git a/examples/dart/example1/lib/utils/network_util.dart b/examples/dart/example1/lib/utils/network_util.dart deleted file mode 100644 index 26e7135d4..000000000 --- a/examples/dart/example1/lib/utils/network_util.dart +++ /dev/null @@ -1,14 +0,0 @@ -import 'dart:async'; - -class NetworkUtil { - - static NetworkUtil _instance = new NetworkUtil.internal(); - NetworkUtil.internal(); - factory NetworkUtil() => _instance; - - - Future get(){ - return null; - } - -} \ No newline at end of file diff --git a/examples/elixir/example1/config/dev.exs b/examples/elixir/example1/config/dev.exs deleted file mode 100644 index 0ce6f2430..000000000 --- a/examples/elixir/example1/config/dev.exs +++ /dev/null @@ -1,64 +0,0 @@ -use Mix.Config - -# For development, we disable any cache and enable -# debugging and code reloading. -# -# The watchers configuration can be used to run external -# watchers to your application. For example, we use it -# with brunch.io to recompile .js and .css sources. -config :built_with_elixir, BuiltWithElixirWeb.Endpoint, - http: [port: 4000], - debug_errors: true, - code_reloader: true, - check_origin: false, - watchers: [ - node: [ - "node_modules/brunch/bin/brunch", - "watch", - "--stdin", - cd: Path.expand("../assets", __DIR__) - ] - ] - -# ## SSL Support -# -# In order to use HTTPS in development, a self-signed -# certificate can be generated by running the following -# command from your terminal: -# -# openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" -keyout priv/server.key -out priv/server.pem -# -# The `http:` config above can be replaced with: -# -# https: [port: 4000, keyfile: "priv/server.key", certfile: "priv/server.pem"], -# -# If desired, both `http:` and `https:` keys can be -# configured to run both http and https servers on -# different ports. - -# Watch static and templates for browser reloading. -config :built_with_elixir, BuiltWithElixirWeb.Endpoint, - live_reload: [ - patterns: [ - ~r{priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$}, - ~r{priv/gettext/.*(po)$}, - ~r{lib/built_with_elixir_web/views/.*(ex)$}, - ~r{lib/built_with_elixir_web/templates/.*(eex)$} - ] - ] - -# Do not include metadata nor timestamps in development logs -config :logger, :console, format: "[$level] $message\n" - -# Set a higher stacktrace during development. Avoid configuring such -# in production as building large stacktraces may be expensive. -config :phoenix, :stacktrace_depth, 20 - -# Configure your database -config :built_with_elixir, BuiltWithElixir.Repo, - adapter: Ecto.Adapters.Postgres, - username: "postgres", - password: "postgres", - database: "built_with_elixir_dev", - hostname: "localhost", - pool_size: 10 diff --git a/examples/elixir/example1/config/prod.exs b/examples/elixir/example1/config/prod.exs deleted file mode 100644 index 1b14b4369..000000000 --- a/examples/elixir/example1/config/prod.exs +++ /dev/null @@ -1,72 +0,0 @@ -use Mix.Config - -# For production, we often load configuration from external -# sources, such as your system environment. For this reason, -# you won't find the :http configuration below, but set inside -# BuiltWithElixirWeb.Endpoint.init/2 when load_from_system_env is -# true. Any dynamic configuration should be done there. -# -# Don't forget to configure the url host to something meaningful, -# Phoenix uses this information when generating URLs. -# -# Finally, we also include the path to a cache manifest -# containing the digested version of static files. This -# manifest is generated by the mix phx.digest task -# which you typically run after static files are built. -config :built_with_elixir, BuiltWithElixirWeb.Endpoint, - load_from_system_env: true, - url: [scheme: "http", host: "builtwithelixir.com", port: 80], - cache_static_manifest: "priv/static/cache_manifest.json", - secret_key_base: Map.fetch!(System.get_env(), "SECRET_KEY_BASE") - -# Configure your database -config :built_with_elixir, BuiltWithElixir.Repo, - adapter: Ecto.Adapters.Postgres, - url: System.get_env("DATABASE_URL"), - pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"), - ssl: true - -# Do not print debug messages in production -config :logger, level: :info - -# ## SSL Support -# -# To get SSL working, you will need to add the `https` key -# to the previous section and set your `:url` port to 443: -# -# config :built_with_elixir, BuiltWithElixirWeb.Endpoint, -# ... -# url: [host: "example.com", port: 443], -# https: [:inet6, -# port: 443, -# keyfile: System.get_env("SOME_APP_SSL_KEY_PATH"), -# certfile: System.get_env("SOME_APP_SSL_CERT_PATH")] -# -# Where those two env variables return an absolute path to -# the key and cert in disk or a relative path inside priv, -# for example "priv/ssl/server.key". -# -# We also recommend setting `force_ssl`, ensuring no data is -# ever sent via http, always redirecting to https: -# -# config :built_with_elixir, BuiltWithElixirWeb.Endpoint, -# force_ssl: [hsts: true] -# -# Check `Plug.SSL` for all available options in `force_ssl`. - -# ## Using releases -# -# If you are doing OTP releases, you need to instruct Phoenix -# to start the server for all endpoints: -# -# config :phoenix, :serve_endpoints, true -# -# Alternatively, you can configure exactly which server to -# start per endpoint: -# -# config :built_with_elixir, BuiltWithElixirWeb.Endpoint, server: true -# - -# Finally import the config/prod.secret.exs -# which should be versioned separately. -# import_config "prod.secret.exs" diff --git a/examples/elixir/example1/config/web.exs b/examples/elixir/example1/config/web.exs deleted file mode 100644 index 4c00e0936..000000000 --- a/examples/elixir/example1/config/web.exs +++ /dev/null @@ -1,7 +0,0 @@ -use Mix.Config - -# Config that is put into the front-end window.config - -config :built_with_elixir, :web, - # Optional. - google_analytics: Map.get(System.get_env(), "GOOGLE_ANALYTICS_KEY") diff --git a/examples/elixir/example1/lib/built_with_elixir.ex b/examples/elixir/example1/lib/built_with_elixir.ex deleted file mode 100644 index f17554546..000000000 --- a/examples/elixir/example1/lib/built_with_elixir.ex +++ /dev/null @@ -1,9 +0,0 @@ -defmodule BuiltWithElixir do - @moduledoc """ - BuiltWithElixir keeps the contexts that define your domain - and business logic. - - Contexts are also responsible for managing your data, regardless - if it comes from the database, an external API or others. - """ -end diff --git a/examples/elixir/example1/lib/built_with_elixir/application.ex b/examples/elixir/example1/lib/built_with_elixir/application.ex deleted file mode 100644 index 361c0ad31..000000000 --- a/examples/elixir/example1/lib/built_with_elixir/application.ex +++ /dev/null @@ -1,33 +0,0 @@ -defmodule BuiltWithElixir.Application do - @moduledoc false - - use Application - - # See https://hexdocs.pm/elixir/Application.html - # for more information on OTP Applications - def start(_type, _args) do - import Supervisor.Spec - - # Define workers and child supervisors to be supervised - children = [ - # Start the Ecto repository - supervisor(BuiltWithElixir.Repo, []), - # Start the endpoint when the application starts - supervisor(BuiltWithElixirWeb.Endpoint, []) - # Start your own worker by calling: BuiltWithElixir.Worker.start_link(arg1, arg2, arg3) - # worker(BuiltWithElixir.Worker, [arg1, arg2, arg3]), - ] - - # See https://hexdocs.pm/elixir/Supervisor.html - # for other strategies and supported options - opts = [strategy: :one_for_one, name: BuiltWithElixir.Supervisor] - Supervisor.start_link(children, opts) - end - - # Tell Phoenix to update the endpoint configuration - # whenever the application is updated. - def config_change(changed, _new, removed) do - BuiltWithElixirWeb.Endpoint.config_change(changed, removed) - :ok - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir/projects/post.ex b/examples/elixir/example1/lib/built_with_elixir/projects/post.ex deleted file mode 100644 index 8780fd5e6..000000000 --- a/examples/elixir/example1/lib/built_with_elixir/projects/post.ex +++ /dev/null @@ -1,43 +0,0 @@ -defmodule BuiltWithElixir.Projects.Post do - @moduledoc false - - use Ecto.Schema - import Ecto.Changeset - - schema "posts" do - field(:author, :string) - field(:description, :string) - field(:github_url, :string) - field(:title, :string) - field(:type, :string) - field(:website_url, :string) - field(:image_url, :string) - field(:published, :boolean) - field(:author_email, :string) - - timestamps() - end - - @doc false - def changeset(post, attrs) do - post - |> cast(attrs, [ - :title, - :description, - :author, - :website_url, - :github_url, - :image_url, - :type, - :published, - :author_email - ]) - |> validate_required([ - :title, - :description, - :author, - :image_url, - :type - ]) - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir/projects/posts.ex b/examples/elixir/example1/lib/built_with_elixir/projects/posts.ex deleted file mode 100644 index d2e1e3f35..000000000 --- a/examples/elixir/example1/lib/built_with_elixir/projects/posts.ex +++ /dev/null @@ -1,133 +0,0 @@ -defmodule BuiltWithElixir.Projects do - @moduledoc """ - The Projects context. - """ - - import Ecto.Query, warn: false - alias BuiltWithElixir.Repo - - alias BuiltWithElixir.Projects.Post - - @doc """ - Returns the list of posts. - - ## Examples - - iex> list_posts() - [%Post{}, ...] - - """ - def list_posts do - default_post_query() - |> Repo.all() - end - - @doc """ - Returns the list of posts given an `offset` and optional `limit` - - ## Examples - - iex> list_posts() - [%Post{}, ...] - - """ - def list_posts(offset, limit \\ 10) do - query = default_post_query() - - from( - p in query, - limit: ^limit, - offset: ^offset - ) - |> Repo.all() - end - - @doc """ - Gets a single post. - - Raises `Ecto.NoResultsError` if the Post does not exist. - - ## Examples - - iex> get_post!(123) - %Post{} - - iex> get_post!(456) - ** (Ecto.NoResultsError) - - """ - def get_post!(id), do: Repo.get!(Post, id) - - @doc """ - Creates a post. - - ## Examples - - iex> create_post(%{field: value}) - {:ok, %Post{}} - - iex> create_post(%{field: bad_value}) - {:error, %Ecto.Changeset{}} - - """ - def create_post(attrs \\ %{}) do - %Post{} - |> Post.changeset(attrs) - |> Repo.insert() - end - - @doc """ - Updates a post. - - ## Examples - - iex> update_post(post, %{field: new_value}) - {:ok, %Post{}} - - iex> update_post(post, %{field: bad_value}) - {:error, %Ecto.Changeset{}} - - """ - def update_post(%Post{} = post, attrs) do - post - |> Post.changeset(attrs) - |> Repo.update() - end - - @doc """ - Deletes a Post. - - ## Examples - - iex> delete_post(post) - {:ok, %Post{}} - - iex> delete_post(post) - {:error, %Ecto.Changeset{}} - - """ - def delete_post(%Post{} = post) do - Repo.delete(post) - end - - @doc """ - Returns an `%Ecto.Changeset{}` for tracking post changes. - - ## Examples - - iex> change_post(post) - %Ecto.Changeset{source: %Post{}} - - """ - def change_post(%Post{} = post) do - Post.changeset(post, %{}) - end - - defp default_post_query() do - from( - p in Post, - where: p.published == true, - order_by: [desc: :inserted_at] - ) - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir/repo.ex b/examples/elixir/example1/lib/built_with_elixir/repo.ex deleted file mode 100644 index 154dac8e0..000000000 --- a/examples/elixir/example1/lib/built_with_elixir/repo.ex +++ /dev/null @@ -1,11 +0,0 @@ -defmodule BuiltWithElixir.Repo do - use Ecto.Repo, otp_app: :built_with_elixir - - @doc """ - Dynamically loads the repository url from the - DATABASE_URL environment variable. - """ - def init(_, opts) do - {:ok, Keyword.put(opts, :url, System.get_env("DATABASE_URL"))} - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir/utils/cloudinary.ex b/examples/elixir/example1/lib/built_with_elixir/utils/cloudinary.ex deleted file mode 100644 index 331b3b7d7..000000000 --- a/examples/elixir/example1/lib/built_with_elixir/utils/cloudinary.ex +++ /dev/null @@ -1,9 +0,0 @@ -defmodule BuiltWithElixir.Utils.Cloudinary do - @moduledoc false - - @base Application.get_env(:built_with_elixir, :cloudinary_base_url) - - def generate_image_url(public_id, transformation \\ "t_elixir_project_preview") do - "#{@base}/image/upload/#{transformation}/#{public_id}" - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web.ex b/examples/elixir/example1/lib/built_with_elixir_web.ex deleted file mode 100644 index 910ca205e..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web.ex +++ /dev/null @@ -1,68 +0,0 @@ -defmodule BuiltWithElixirWeb do - @moduledoc """ - The entrypoint for defining your web interface, such - as controllers, views, channels and so on. - - This can be used in your application as: - - use BuiltWithElixirWeb, :controller - use BuiltWithElixirWeb, :view - - The definitions below will be executed for every view, - controller, etc, so keep them short and clean, focused - on imports, uses and aliases. - - Do NOT define functions inside the quoted expressions - below. Instead, define any helper function in modules - and import those modules here. - """ - - def controller do - quote do - use Phoenix.Controller, namespace: BuiltWithElixirWeb - import Plug.Conn - import BuiltWithElixirWeb.Router.Helpers - import BuiltWithElixirWeb.Gettext - end - end - - def view do - quote do - use Phoenix.View, - root: "lib/built_with_elixir_web/templates", - namespace: BuiltWithElixirWeb - - # Import convenience functions from controllers - import Phoenix.Controller, only: [get_flash: 2, view_module: 1] - - # Use all HTML functionality (forms, tags, etc) - use Phoenix.HTML - - import BuiltWithElixirWeb.Router.Helpers - import BuiltWithElixirWeb.ErrorHelpers - import BuiltWithElixirWeb.Gettext - end - end - - def router do - quote do - use Phoenix.Router - import Plug.Conn - import Phoenix.Controller - end - end - - def channel do - quote do - use Phoenix.Channel - import BuiltWithElixirWeb.Gettext - end - end - - @doc """ - When used, dispatch to the appropriate controller/view/etc. - """ - defmacro __using__(which) when is_atom(which) do - apply(__MODULE__, which, []) - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/channels/user_socket.ex b/examples/elixir/example1/lib/built_with_elixir_web/channels/user_socket.ex deleted file mode 100644 index fe93dfb8d..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/channels/user_socket.ex +++ /dev/null @@ -1,37 +0,0 @@ -defmodule BuiltWithElixirWeb.UserSocket do - use Phoenix.Socket - - ## Channels - # channel "room:*", BuiltWithElixirWeb.RoomChannel - - ## Transports - transport(:websocket, Phoenix.Transports.WebSocket) - # transport :longpoll, Phoenix.Transports.LongPoll - - # Socket params are passed from the client and can - # be used to verify and authenticate a user. After - # verification, you can put default assigns into - # the socket that will be set for all channels, ie - # - # {:ok, assign(socket, :user_id, verified_user_id)} - # - # To deny connection, return `:error`. - # - # See `Phoenix.Token` documentation for examples in - # performing token verification on connect. - def connect(_params, socket) do - {:ok, socket} - end - - # Socket id's are topics that allow you to identify all sockets for a given user: - # - # def id(socket), do: "user_socket:#{socket.assigns.user_id}" - # - # Would allow you to broadcast a "disconnect" event and terminate - # all active sockets and channels for a given user: - # - # BuiltWithElixirWeb.Endpoint.broadcast("user_socket:#{user.id}", "disconnect", %{}) - # - # Returning `nil` makes this socket anonymous. - def id(_socket), do: nil -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/controllers/fallback_controller.ex b/examples/elixir/example1/lib/built_with_elixir_web/controllers/fallback_controller.ex deleted file mode 100644 index bea354a6d..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/controllers/fallback_controller.ex +++ /dev/null @@ -1,20 +0,0 @@ -defmodule BuiltWithElixirWeb.FallbackController do - @moduledoc """ - Translates controller action results into valid `Plug.Conn` responses. - - See `Phoenix.Controller.action_fallback/1` for more details. - """ - use BuiltWithElixirWeb, :controller - - def call(conn, {:error, %Ecto.Changeset{} = changeset}) do - conn - |> put_status(:unprocessable_entity) - |> render(BuiltWithElixirWeb.ChangesetView, "error.json", changeset: changeset) - end - - def call(conn, {:error, :not_found}) do - conn - |> put_status(:not_found) - |> render(BuiltWithElixirWeb.ErrorView, :"404") - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/controllers/page_controller.ex b/examples/elixir/example1/lib/built_with_elixir_web/controllers/page_controller.ex deleted file mode 100644 index b190d5919..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/controllers/page_controller.ex +++ /dev/null @@ -1,7 +0,0 @@ -defmodule BuiltWithElixirWeb.PageController do - use BuiltWithElixirWeb, :controller - - def index(conn, _params) do - render(conn, "index.html") - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/controllers/post_controller.ex b/examples/elixir/example1/lib/built_with_elixir_web/controllers/post_controller.ex deleted file mode 100644 index 3c6eabf43..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/controllers/post_controller.ex +++ /dev/null @@ -1,69 +0,0 @@ -defmodule BuiltWithElixirWeb.PostController do - use BuiltWithElixirWeb, :controller - - alias BuiltWithElixir.Projects - alias BuiltWithElixir.Projects.Post - alias BuiltWithElixir.Utils.Cloudinary - - action_fallback(BuiltWithElixirWeb.FallbackController) - - @cloudini_client Cloudini.new() - @cloudini Application.get_env(:built_with_elixir, :cloudini) - - def index(conn, params) do - posts = - case params do - %{"offset" => offset, "limit" => limit} -> Projects.list_posts(offset, limit) - %{"offset" => offset} -> Projects.list_posts(offset) - %{"limit" => limit} -> Projects.list_posts(0, limit) - _ -> Projects.list_posts() - end - - render(conn, "index.json", posts: posts) - end - - def create(conn, %{"image_file" => file} = post_params) do - id = "build-with-elixir/#{Path.rootname(file.filename)}" - - with {:ok, %{"public_id" => public_id}} <- - @cloudini.upload_image(@cloudini_client, file.path, public_id: id) do - image_url = Cloudinary.generate_image_url(public_id) - - post_params = - %{"image_url" => image_url} |> Enum.into(post_params) |> Map.delete("image_file") - - conn - |> create(post_params) - end - end - - def create(conn, post_params) do - with {:ok, %Post{} = post} <- Projects.create_post(post_params) do - conn - |> put_status(:created) - |> put_resp_header("location", post_path(conn, :show, post)) - |> render("show.json", post: post) - end - end - - def show(conn, %{"id" => id}) do - post = Projects.get_post!(id) - render(conn, "show.json", post: post) - end - - def update(conn, %{"id" => id, "post" => post_params}) do - post = Projects.get_post!(id) - - with {:ok, %Post{} = post} <- Projects.update_post(post, post_params) do - render(conn, "show.json", post: post) - end - end - - def delete(conn, %{"id" => id}) do - post = Projects.get_post!(id) - - with {:ok, %Post{}} <- Projects.delete_post(post) do - send_resp(conn, :no_content, "") - end - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/endpoint.ex b/examples/elixir/example1/lib/built_with_elixir_web/endpoint.ex deleted file mode 100644 index b81af6def..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/endpoint.ex +++ /dev/null @@ -1,65 +0,0 @@ -defmodule BuiltWithElixirWeb.Endpoint do - use Phoenix.Endpoint, otp_app: :built_with_elixir - - socket("/socket", BuiltWithElixirWeb.UserSocket) - - # Serve at "/" the static files from "priv/static" directory. - # - # You should set gzip to true if you are running phoenix.digest - # when deploying your static files in production. - plug( - Plug.Static, - at: "/", - from: :built_with_elixir, - gzip: false, - only: ~w(css fonts images js favicon.ico robots.txt) - ) - - # Code reloading can be explicitly enabled under the - # :code_reloader configuration of your endpoint. - if code_reloading? do - socket("/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket) - plug(Phoenix.LiveReloader) - plug(Phoenix.CodeReloader) - end - - plug(Plug.RequestId) - plug(Plug.Logger) - - plug( - Plug.Parsers, - parsers: [:urlencoded, :multipart, :json], - pass: ["*/*"], - json_decoder: Poison - ) - - plug(Plug.MethodOverride) - plug(Plug.Head) - - # The session will be stored in the cookie and signed, - # this means its contents can be read but not tampered with. - # Set :encryption_salt if you would also like to encrypt it. - plug( - Plug.Session, - store: :cookie, - key: "_built_with_elixir_key", - signing_salt: "N3sjUaz7" - ) - - plug(BuiltWithElixirWeb.Router) - - @doc """ - Callback invoked for dynamically configuring the endpoint. - - It receives the endpoint configuration and checks if - configuration should be loaded from the system environment. - """ - def init(_key, config) do - if config[:load_from_system_env] do - port = System.get_env("PORT") || raise "expected the PORT environment variable to be set" - {:ok, Keyword.put(config, :http, [:inet6, port: port])} - else - {:ok, config} - end - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/gettext.ex b/examples/elixir/example1/lib/built_with_elixir_web/gettext.ex deleted file mode 100644 index a836ec0f0..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/gettext.ex +++ /dev/null @@ -1,24 +0,0 @@ -defmodule BuiltWithElixirWeb.Gettext do - @moduledoc """ - A module providing Internationalization with a gettext-based API. - - By using [Gettext](https://hexdocs.pm/gettext), - your module gains a set of macros for translations, for example: - - import BuiltWithElixirWeb.Gettext - - # Simple translation - gettext "Here is the string to translate" - - # Plural translation - ngettext "Here is the string to translate", - "Here are the strings to translate", - 3 - - # Domain-based translation - dgettext "errors", "Here is the error message to translate" - - See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage. - """ - use Gettext, otp_app: :built_with_elixir -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/router.ex b/examples/elixir/example1/lib/built_with_elixir_web/router.ex deleted file mode 100644 index 3658a98d1..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/router.ex +++ /dev/null @@ -1,28 +0,0 @@ -defmodule BuiltWithElixirWeb.Router do - use BuiltWithElixirWeb, :router - - pipeline :browser do - plug(:accepts, ["html"]) - plug(:fetch_session) - plug(:fetch_flash) - plug(:protect_from_forgery) - plug(:put_secure_browser_headers) - end - - pipeline :api do - plug(:accepts, ["json"]) - end - - scope "/", BuiltWithElixirWeb do - # Use the default browser stack - pipe_through(:browser) - - get("/", PageController, :index) - end - - scope "/api", BuiltWithElixirWeb do - pipe_through(:api) - - resources("/projects", PostController, only: [:index, :show, :create]) - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/templates/layout/app.html.eex b/examples/elixir/example1/lib/built_with_elixir_web/templates/layout/app.html.eex deleted file mode 100644 index b741e71fb..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/templates/layout/app.html.eex +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - " /> - - Built With Elixir - A place to discover projects built with Elixir. - "> - - - - - -
-

This website is still in beta, please report any issues here.

-
-
- - - - - -
- <%= render @view_module, @view_template, assigns %> -
- - - - -
- - - - - - diff --git a/examples/elixir/example1/lib/built_with_elixir_web/templates/page/index.html.eex b/examples/elixir/example1/lib/built_with_elixir_web/templates/page/index.html.eex deleted file mode 100644 index 2f5561a6b..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/templates/page/index.html.eex +++ /dev/null @@ -1,9 +0,0 @@ -
-
-

A place to discover projects built with -
Elixir. -

-

Elixir is an awesome dynamic, functional language designed for building scalable and maintainable applications. Submit your project now!

-
-
-
diff --git a/examples/elixir/example1/lib/built_with_elixir_web/views/changeset_view.ex b/examples/elixir/example1/lib/built_with_elixir_web/views/changeset_view.ex deleted file mode 100644 index 7ab7a9297..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/views/changeset_view.ex +++ /dev/null @@ -1,19 +0,0 @@ -defmodule BuiltWithElixirWeb.ChangesetView do - use BuiltWithElixirWeb, :view - - @doc """ - Traverses and translates changeset errors. - - See `Ecto.Changeset.traverse_errors/2` and - `BuiltWithElixirWeb.ErrorHelpers.translate_error/1` for more details. - """ - def translate_errors(changeset) do - Ecto.Changeset.traverse_errors(changeset, &translate_error/1) - end - - def render("error.json", %{changeset: changeset}) do - # When encoded, the changeset returns its errors - # as a JSON object. So we just pass it forward. - %{errors: translate_errors(changeset)} - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/views/error_helpers.ex b/examples/elixir/example1/lib/built_with_elixir_web/views/error_helpers.ex deleted file mode 100644 index 4a5449172..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/views/error_helpers.ex +++ /dev/null @@ -1,40 +0,0 @@ -defmodule BuiltWithElixirWeb.ErrorHelpers do - @moduledoc """ - Conveniences for translating and building error messages. - """ - - use Phoenix.HTML - - @doc """ - Generates tag for inlined form input errors. - """ - def error_tag(form, field) do - Enum.map(Keyword.get_values(form.errors, field), fn error -> - content_tag(:span, translate_error(error), class: "help-block") - end) - end - - @doc """ - Translates an error message using gettext. - """ - def translate_error({msg, opts}) do - # Because error messages were defined within Ecto, we must - # call the Gettext module passing our Gettext backend. We - # also use the "errors" domain as translations are placed - # in the errors.po file. - # Ecto will pass the :count keyword if the error message is - # meant to be pluralized. - # On your own code and templates, depending on whether you - # need the message to be pluralized or not, this could be - # written simply as: - # - # dngettext "errors", "1 file", "%{count} files", count - # dgettext "errors", "is invalid" - # - if count = opts[:count] do - Gettext.dngettext(BuiltWithElixirWeb.Gettext, "errors", msg, msg, count, opts) - else - Gettext.dgettext(BuiltWithElixirWeb.Gettext, "errors", msg, opts) - end - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/views/error_view.ex b/examples/elixir/example1/lib/built_with_elixir_web/views/error_view.ex deleted file mode 100644 index 6f2d2ccd3..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/views/error_view.ex +++ /dev/null @@ -1,17 +0,0 @@ -defmodule BuiltWithElixirWeb.ErrorView do - use BuiltWithElixirWeb, :view - - def render("404.html", _assigns) do - "Page not found" - end - - def render("500.html", _assigns) do - "Internal server error" - end - - # In case no render clause matches or no - # template is found, let's render it as 500 - def template_not_found(_template, assigns) do - render("500.html", assigns) - end -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/views/layout_view.ex b/examples/elixir/example1/lib/built_with_elixir_web/views/layout_view.ex deleted file mode 100644 index 13242024d..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/views/layout_view.ex +++ /dev/null @@ -1,3 +0,0 @@ -defmodule BuiltWithElixirWeb.LayoutView do - use BuiltWithElixirWeb, :view -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/views/page_view.ex b/examples/elixir/example1/lib/built_with_elixir_web/views/page_view.ex deleted file mode 100644 index 732005c79..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/views/page_view.ex +++ /dev/null @@ -1,3 +0,0 @@ -defmodule BuiltWithElixirWeb.PageView do - use BuiltWithElixirWeb, :view -end diff --git a/examples/elixir/example1/lib/built_with_elixir_web/views/post_view.ex b/examples/elixir/example1/lib/built_with_elixir_web/views/post_view.ex deleted file mode 100644 index d44ef2f10..000000000 --- a/examples/elixir/example1/lib/built_with_elixir_web/views/post_view.ex +++ /dev/null @@ -1,26 +0,0 @@ -defmodule BuiltWithElixirWeb.PostView do - use BuiltWithElixirWeb, :view - alias BuiltWithElixirWeb.PostView - - def render("index.json", %{posts: posts}) do - %{data: render_many(posts, PostView, "post.json")} - end - - def render("show.json", %{post: post}) do - %{data: render_one(post, PostView, "post.json")} - end - - def render("post.json", %{post: post}) do - %{ - id: post.id, - title: post.title, - description: post.description, - author: post.author, - website_url: post.website_url, - github_url: post.github_url, - type: post.type, - image_url: post.image_url, - inserted_at: post.inserted_at - } - end -end diff --git a/examples/elixir/example1/mix.exs b/examples/elixir/example1/mix.exs deleted file mode 100644 index 7e496249c..000000000 --- a/examples/elixir/example1/mix.exs +++ /dev/null @@ -1,67 +0,0 @@ -defmodule BuiltWithElixir.Mixfile do - use Mix.Project - - def project do - [ - app: :built_with_elixir, - version: "0.0.1", - elixir: "~> 1.4", - elixirc_paths: elixirc_paths(Mix.env()), - compilers: [:phoenix, :gettext] ++ Mix.compilers(), - start_permanent: Mix.env() == :prod, - aliases: aliases(), - deps: deps() - ] - end - - # Configuration for the OTP application. - # - # Type `mix help compile.app` for more information. - def application do - [ - mod: {BuiltWithElixir.Application, []}, - extra_applications: [:logger, :runtime_tools, :cloudini] - ] - end - - # Specifies which paths to compile per environment. - defp elixirc_paths(:test), do: ["lib", "test/support"] - defp elixirc_paths(_), do: ["lib"] - - # Specifies your project dependencies. - # - # Type `mix help deps` for examples and options. - defp deps do - [ - {:phoenix, "~> 1.3.0"}, - {:phoenix_pubsub, "~> 1.0"}, - {:phoenix_ecto, "~> 3.2"}, - {:postgrex, ">= 0.0.0"}, - {:phoenix_html, "~> 2.10"}, - {:gettext, "~> 0.11"}, - {:cowboy, "~> 1.0"}, - {:json, "~> 1.0"}, - {:credo, "~> 0.9.1"}, - {:plug_cowboy, "~> 1.0"}, - {:cloudini, "~> 1.2"}, - {:phoenix_live_reload, "~> 1.0", only: :dev}, - {:mix_test_watch, "~> 0.6.0", only: :dev} - ] - end - - # Aliases are shortcuts or tasks specific to the current project. - # For example, to create, migrate and run the seeds file at once: - # - # $ mix ecto.setup - # - # See the documentation for `Mix` for more info on aliases. - defp aliases do - [ - "ecto.setup.dev": ["ecto.create", "ecto.migrate", "run priv/repo/dev-seed.exs"], - "ecto.reset.dev": ["ecto.drop", "ecto.setup.dev"], - "ecto.setup.prod": ["ecto.create", "ecto.migrate", "run priv/repo/prod-seed.exs"], - "ecto.reset.prod": ["ecto.drop", "ecto.setup.prod"], - test: ["ecto.create --quiet", "ecto.migrate", "test"] - ] - end -end diff --git a/examples/elixir/example1/mix.lock b/examples/elixir/example1/mix.lock deleted file mode 100644 index c1e840708..000000000 --- a/examples/elixir/example1/mix.lock +++ /dev/null @@ -1,28 +0,0 @@ -%{ - "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm"}, - "cloudini": {:hex, :cloudini, "1.2.0", "cd0ef04ebafb8dee5b96fe580e696c9f8032e21c4acfcee45d7c3089b5b39cd3", [:mix], [{:poison, "~> 2.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"}, - "connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [:mix], [], "hexpm"}, - "cowboy": {:hex, :cowboy, "1.1.2", "61ac29ea970389a88eca5a65601460162d370a70018afe6f949a29dca91f3bb0", [:rebar3], [{:cowlib, "~> 1.0.2", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "~> 1.3.2", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm"}, - "cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], [], "hexpm"}, - "credo": {:hex, :credo, "0.9.3", "76fa3e9e497ab282e0cf64b98a624aa11da702854c52c82db1bf24e54ab7c97a", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:poison, ">= 0.0.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"}, - "db_connection": {:hex, :db_connection, "1.1.3", "89b30ca1ef0a3b469b1c779579590688561d586694a3ce8792985d4d7e575a61", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"}, - "decimal": {:hex, :decimal, "1.7.0", "30d6b52c88541f9a66637359ddf85016df9eb266170d53105f02e4a67e00c5aa", [:mix], [], "hexpm"}, - "ecto": {:hex, :ecto, "2.2.11", "4bb8f11718b72ba97a2696f65d247a379e739a0ecabf6a13ad1face79844791c", [:mix], [{:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, repo: "hexpm", optional: false]}, {:mariaex, "~> 0.8.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"}, - "file_system": {:hex, :file_system, "0.2.6", "fd4dc3af89b9ab1dc8ccbcc214a0e60c41f34be251d9307920748a14bf41f1d3", [:mix], [], "hexpm"}, - "gettext": {:hex, :gettext, "0.16.1", "e2130b25eebcbe02bb343b119a07ae2c7e28bd4b146c4a154da2ffb2b3507af2", [:mix], [], "hexpm"}, - "json": {:hex, :json, "1.2.1", "21e8d6983091660f394f44a7c11f8cf1f467afb2aada1fcf59c2f1b590a42f68", [:mix], [], "hexpm"}, - "mime": {:hex, :mime, "1.3.1", "30ce04ab3175b6ad0bdce0035cba77bba68b813d523d1aac73d9781b4d193cf8", [:mix], [], "hexpm"}, - "mix_test_watch": {:hex, :mix_test_watch, "0.6.0", "5e206ed04860555a455de2983937efd3ce79f42bd8536fc6b900cc286f5bb830", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm"}, - "phoenix": {:hex, :phoenix, "1.3.0", "1c01124caa1b4a7af46f2050ff11b267baa3edb441b45dbf243e979cd4c5891b", [:mix], [{:cowboy, "~> 1.0", [hex: :cowboy, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 1.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"}, - "phoenix_ecto": {:hex, :phoenix_ecto, "3.6.0", "d65dbcedd6af568d8582dcd7da516c3051016bad51f9953e5337fea40bcd8a9d", [:mix], [{:ecto, "~> 2.2", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.9", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"}, - "phoenix_html": {:hex, :phoenix_html, "2.13.2", "f5d27c9b10ce881a60177d2b5227314fc60881e6b66b41dfe3349db6ed06cf57", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"}, - "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.1.7", "425fff579085f7eacaf009e71940be07338c8d8b78d16e307c50c7d82a381497", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.0 or ~> 1.2 or ~> 1.3 or ~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm"}, - "phoenix_pubsub": {:hex, :phoenix_pubsub, "1.1.2", "496c303bdf1b2e98a9d26e89af5bba3ab487ba3a3735f74bf1f4064d2a845a3e", [:mix], [], "hexpm"}, - "plug": {:hex, :plug, "1.8.0", "9d2685cb007fe5e28ed9ac27af2815bc262b7817a00929ac10f56f169f43b977", [:mix], [{:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: true]}], "hexpm"}, - "plug_cowboy": {:hex, :plug_cowboy, "1.0.0", "2e2a7d3409746d335f451218b8bb0858301c3de6d668c3052716c909936eb57a", [:mix], [{:cowboy, "~> 1.0", [hex: :cowboy, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"}, - "plug_crypto": {:hex, :plug_crypto, "1.0.0", "18e49317d3fa343f24620ed22795ec29d4a5e602d52d1513ccea0b07d8ea7d4d", [:mix], [], "hexpm"}, - "poison": {:hex, :poison, "2.2.0", "4763b69a8a77bd77d26f477d196428b741261a761257ff1cf92753a0d4d24a63", [:mix], [], "hexpm"}, - "poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm"}, - "postgrex": {:hex, :postgrex, "0.13.5", "3d931aba29363e1443da167a4b12f06dcd171103c424de15e5f3fc2ba3e6d9c5", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm"}, - "ranch": {:hex, :ranch, "1.3.2", "e4965a144dc9fbe70e5c077c65e73c57165416a901bd02ea899cfd95aa890986", [:rebar3], [], "hexpm"}, -} diff --git a/examples/elixir/example1/priv/gettext/en/LC_MESSAGES/errors.po b/examples/elixir/example1/priv/gettext/en/LC_MESSAGES/errors.po deleted file mode 100644 index a589998cf..000000000 --- a/examples/elixir/example1/priv/gettext/en/LC_MESSAGES/errors.po +++ /dev/null @@ -1,97 +0,0 @@ -## `msgid`s in this file come from POT (.pot) files. -## -## Do not add, change, or remove `msgid`s manually here as -## they're tied to the ones in the corresponding POT file -## (with the same domain). -## -## Use `mix gettext.extract --merge` or `mix gettext.merge` -## to merge POT files into PO files. -msgid "" -msgstr "" -"Language: en\n" - -## From Ecto.Changeset.cast/4 -msgid "can't be blank" -msgstr "" - -## From Ecto.Changeset.unique_constraint/3 -msgid "has already been taken" -msgstr "" - -## From Ecto.Changeset.put_change/3 -msgid "is invalid" -msgstr "" - -## From Ecto.Changeset.validate_acceptance/3 -msgid "must be accepted" -msgstr "" - -## From Ecto.Changeset.validate_format/3 -msgid "has invalid format" -msgstr "" - -## From Ecto.Changeset.validate_subset/3 -msgid "has an invalid entry" -msgstr "" - -## From Ecto.Changeset.validate_exclusion/3 -msgid "is reserved" -msgstr "" - -## From Ecto.Changeset.validate_confirmation/3 -msgid "does not match confirmation" -msgstr "" - -## From Ecto.Changeset.no_assoc_constraint/3 -msgid "is still associated with this entry" -msgstr "" - -msgid "are still associated with this entry" -msgstr "" - -## From Ecto.Changeset.validate_length/3 -msgid "should be %{count} character(s)" -msgid_plural "should be %{count} character(s)" -msgstr[0] "" -msgstr[1] "" - -msgid "should have %{count} item(s)" -msgid_plural "should have %{count} item(s)" -msgstr[0] "" -msgstr[1] "" - -msgid "should be at least %{count} character(s)" -msgid_plural "should be at least %{count} character(s)" -msgstr[0] "" -msgstr[1] "" - -msgid "should have at least %{count} item(s)" -msgid_plural "should have at least %{count} item(s)" -msgstr[0] "" -msgstr[1] "" - -msgid "should be at most %{count} character(s)" -msgid_plural "should be at most %{count} character(s)" -msgstr[0] "" -msgstr[1] "" - -msgid "should have at most %{count} item(s)" -msgid_plural "should have at most %{count} item(s)" -msgstr[0] "" -msgstr[1] "" - -## From Ecto.Changeset.validate_number/3 -msgid "must be less than %{number}" -msgstr "" - -msgid "must be greater than %{number}" -msgstr "" - -msgid "must be less than or equal to %{number}" -msgstr "" - -msgid "must be greater than or equal to %{number}" -msgstr "" - -msgid "must be equal to %{number}" -msgstr "" diff --git a/examples/elixir/example1/priv/gettext/errors.pot b/examples/elixir/example1/priv/gettext/errors.pot deleted file mode 100644 index 7b2d5ca25..000000000 --- a/examples/elixir/example1/priv/gettext/errors.pot +++ /dev/null @@ -1,95 +0,0 @@ -## This file is a PO Template file. -## -## `msgid`s here are often extracted from source code. -## Add new translations manually only if they're dynamic -## translations that can't be statically extracted. -## -## Run `mix gettext.extract` to bring this file up to -## date. Leave `msgstr`s empty as changing them here as no -## effect: edit them in PO (`.po`) files instead. - -## From Ecto.Changeset.cast/4 -msgid "can't be blank" -msgstr "" - -## From Ecto.Changeset.unique_constraint/3 -msgid "has already been taken" -msgstr "" - -## From Ecto.Changeset.put_change/3 -msgid "is invalid" -msgstr "" - -## From Ecto.Changeset.validate_acceptance/3 -msgid "must be accepted" -msgstr "" - -## From Ecto.Changeset.validate_format/3 -msgid "has invalid format" -msgstr "" - -## From Ecto.Changeset.validate_subset/3 -msgid "has an invalid entry" -msgstr "" - -## From Ecto.Changeset.validate_exclusion/3 -msgid "is reserved" -msgstr "" - -## From Ecto.Changeset.validate_confirmation/3 -msgid "does not match confirmation" -msgstr "" - -## From Ecto.Changeset.no_assoc_constraint/3 -msgid "is still associated with this entry" -msgstr "" - -msgid "are still associated with this entry" -msgstr "" - -## From Ecto.Changeset.validate_length/3 -msgid "should be %{count} character(s)" -msgid_plural "should be %{count} character(s)" -msgstr[0] "" -msgstr[1] "" - -msgid "should have %{count} item(s)" -msgid_plural "should have %{count} item(s)" -msgstr[0] "" -msgstr[1] "" - -msgid "should be at least %{count} character(s)" -msgid_plural "should be at least %{count} character(s)" -msgstr[0] "" -msgstr[1] "" - -msgid "should have at least %{count} item(s)" -msgid_plural "should have at least %{count} item(s)" -msgstr[0] "" -msgstr[1] "" - -msgid "should be at most %{count} character(s)" -msgid_plural "should be at most %{count} character(s)" -msgstr[0] "" -msgstr[1] "" - -msgid "should have at most %{count} item(s)" -msgid_plural "should have at most %{count} item(s)" -msgstr[0] "" -msgstr[1] "" - -## From Ecto.Changeset.validate_number/3 -msgid "must be less than %{number}" -msgstr "" - -msgid "must be greater than %{number}" -msgstr "" - -msgid "must be less than or equal to %{number}" -msgstr "" - -msgid "must be greater than or equal to %{number}" -msgstr "" - -msgid "must be equal to %{number}" -msgstr "" diff --git a/examples/elixir/example1/priv/repo/dev-posts.json b/examples/elixir/example1/priv/repo/dev-posts.json deleted file mode 100644 index fdfb01f25..000000000 --- a/examples/elixir/example1/priv/repo/dev-posts.json +++ /dev/null @@ -1,1002 +0,0 @@ -[ - { - "title": "Just My Luck", - "description": "magna at nunc commodo placerat praesent blandit nam nulla integer pede justo lacinia eget tincidunt eget tempus vel pede morbi porttitor lorem id ligula suspendisse ornare consequat lectus in est", - "author": "iledbury0", - "website_url": "https://techcrunch.com/some/cool/link/that/goes/nowhere", - "github_url": "blogs.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Life Is What You Make It (Linha de Passe)", - "description": "tristique est et tempus semper est quam pharetra magna ac consequat metus sapien ut nunc vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae", - "author": "mbeaufoy1", - "website_url": "https://loc.gov/some/cool/link/that/goes/nowhere", - "github_url": "jigsy.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Dragon Ball Z: Cooler's Revenge (Doragon bôru Z 5: Tobikkiri no saikyô tai saikyô)", - "description": "cursus urna ut tellus nulla ut erat id mauris vulputate elementum nullam varius nulla facilisi cras non velit nec nisi vulputate nonummy maecenas tincidunt lacus at velit", - "author": "aunderhill2", - "website_url": "https://blinklist.com/some/cool/link/that/goes/nowhere", - "github_url": "surveymonkey.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Day of Anger (I giorni dell'ira)", - "description": "sapien quis libero nullam sit amet turpis elementum ligula vehicula consequat morbi a ipsum integer a nibh in quis justo maecenas rhoncus aliquam lacus", - "author": "eburkitt3", - "website_url": "https://seesaa.net/some/cool/link/that/goes/nowhere", - "github_url": "berkeley.edu", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Shanghai Gesture, The", - "description": "aliquet maecenas leo odio condimentum id luctus nec molestie sed justo pellentesque viverra pede ac diam cras pellentesque volutpat dui maecenas tristique est et tempus semper est quam pharetra magna", - "author": "jbeurich4", - "website_url": "https://tuttocitta.it/some/cool/link/that/goes/nowhere", - "github_url": "bing.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Child's Play 2", - "description": "metus sapien ut nunc vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae mauris viverra diam vitae quam suspendisse potenti nullam", - "author": "ldonlon5", - "website_url": "https://acquirethisname.com/some/cool/link/that/goes/nowhere", - "github_url": "sogou.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Hot Dog Program, A", - "description": "velit id pretium iaculis diam erat fermentum justo nec condimentum neque sapien placerat ante nulla justo aliquam quis turpis eget elit sodales scelerisque mauris sit amet eros suspendisse accumsan tortor", - "author": "jbrauns6", - "website_url": "https://qq.com/some/cool/link/that/goes/nowhere", - "github_url": "yolasite.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Chinese Ghost Story, A (Sinnui yauwan)", - "description": "in est risus auctor sed tristique in tempus sit amet sem fusce consequat nulla nisl nunc nisl duis bibendum felis sed interdum venenatis turpis", - "author": "fgerretsen7", - "website_url": "https://imgur.com/some/cool/link/that/goes/nowhere", - "github_url": "archive.org", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Teen Wolf Too", - "description": "curae mauris viverra diam vitae quam suspendisse potenti nullam porttitor lacus at turpis donec posuere metus vitae ipsum aliquam non", - "author": "pchiplin8", - "website_url": "https://creativecommons.org/some/cool/link/that/goes/nowhere", - "github_url": "parallels.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Bostonians, The", - "description": "vel augue vestibulum rutrum rutrum neque aenean auctor gravida sem praesent id massa id nisl venenatis lacinia aenean", - "author": "saubury9", - "website_url": "https://who.int/some/cool/link/that/goes/nowhere", - "github_url": "ameblo.jp", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Highball", - "description": "tincidunt eget tempus vel pede morbi porttitor lorem id ligula suspendisse ornare consequat lectus in est risus auctor sed tristique in tempus sit", - "author": "kbowhaya", - "website_url": "https://cbc.ca/some/cool/link/that/goes/nowhere", - "github_url": "acquirethisname.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Badge, The", - "description": "in ante vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae duis faucibus accumsan odio curabitur convallis duis consequat dui nec nisi volutpat eleifend donec", - "author": "dmatthiesonb", - "website_url": "https://who.int/some/cool/link/that/goes/nowhere", - "github_url": "yahoo.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Mr. Jones", - "description": "donec odio justo sollicitudin ut suscipit a feugiat et eros vestibulum ac est lacinia nisi venenatis tristique fusce congue diam id ornare imperdiet sapien urna pretium", - "author": "weburnec", - "website_url": "https://sitemeter.com/some/cool/link/that/goes/nowhere", - "github_url": "eepurl.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Sagebrush Trail", - "description": "lorem ipsum dolor sit amet consectetuer adipiscing elit proin interdum mauris non ligula pellentesque ultrices phasellus id sapien in sapien iaculis congue vivamus metus arcu adipiscing", - "author": "otuked", - "website_url": "https://linkedin.com/some/cool/link/that/goes/nowhere", - "github_url": "dagondesign.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Prinsessa (Starring Maja)", - "description": "volutpat quam pede lobortis ligula sit amet eleifend pede libero quis orci nullam molestie nibh in lectus pellentesque at nulla suspendisse potenti cras in purus eu magna vulputate luctus", - "author": "osamplese", - "website_url": "https://goo.gl/some/cool/link/that/goes/nowhere", - "github_url": "prlog.org", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Magnolia", - "description": "rutrum nulla tellus in sagittis dui vel nisl duis ac nibh fusce lacus purus aliquet at feugiat non pretium quis lectus suspendisse potenti in eleifend quam a odio in hac", - "author": "mscamwellf", - "website_url": "https://chicagotribune.com/some/cool/link/that/goes/nowhere", - "github_url": "redcross.org", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "American Ninja", - "description": "elementum eu interdum eu tincidunt in leo maecenas pulvinar lobortis est phasellus sit amet erat nulla tempus vivamus in felis eu sapien", - "author": "kradborng", - "website_url": "https://technorati.com/some/cool/link/that/goes/nowhere", - "github_url": "weibo.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Forbidden Planet", - "description": "interdum in ante vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae duis", - "author": "kstirtleh", - "website_url": "https://parallels.com/some/cool/link/that/goes/nowhere", - "github_url": "reuters.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "David Copperfield", - "description": "vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae duis faucibus accumsan odio curabitur convallis duis consequat dui nec nisi", - "author": "btichneri", - "website_url": "https://simplemachines.org/some/cool/link/that/goes/nowhere", - "github_url": "drupal.org", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "There Goes My Baby", - "description": "pretium iaculis diam erat fermentum justo nec condimentum neque sapien placerat ante nulla justo aliquam quis turpis eget elit sodales scelerisque mauris sit amet eros suspendisse accumsan", - "author": "bthebej", - "website_url": "https://miitbeian.gov.cn/some/cool/link/that/goes/nowhere", - "github_url": "ezinearticles.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Wild Bill", - "description": "rhoncus aliquet pulvinar sed nisl nunc rhoncus dui vel sem sed sagittis nam congue risus semper porta volutpat quam pede lobortis ligula sit amet", - "author": "modriscollk", - "website_url": "https://uiuc.edu/some/cool/link/that/goes/nowhere", - "github_url": "myspace.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "R.S.V.P. ", - "description": "varius ut blandit non interdum in ante vestibulum ante ipsum primis in faucibus orci luctus", - "author": "rpardyl", - "website_url": "https://chronoengine.com/some/cool/link/that/goes/nowhere", - "github_url": "stumbleupon.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "I Am Taraneh, I Am Fifteen Years Old (Man, taraneh, panzdah sal daram)", - "description": "lacinia sapien quis libero nullam sit amet turpis elementum ligula vehicula consequat morbi a ipsum integer a nibh in quis justo maecenas rhoncus aliquam", - "author": "jmellowsm", - "website_url": "https://uol.com.br/some/cool/link/that/goes/nowhere", - "github_url": "bravesites.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "November Man, The", - "description": "pharetra magna vestibulum aliquet ultrices erat tortor sollicitudin mi sit amet lobortis sapien sapien non mi integer ac neque duis bibendum morbi non quam nec dui luctus rutrum nulla tellus", - "author": "eswaiten", - "website_url": "https://hexun.com/some/cool/link/that/goes/nowhere", - "github_url": "irs.gov", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Little Italy", - "description": "risus praesent lectus vestibulum quam sapien varius ut blandit non interdum in ante vestibulum ante", - "author": "sgotchero", - "website_url": "https://squidoo.com/some/cool/link/that/goes/nowhere", - "github_url": "devhub.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Exodus: Gods and Kings", - "description": "sagittis sapien cum sociis natoque penatibus et magnis dis parturient montes nascetur ridiculus mus etiam vel augue vestibulum rutrum rutrum neque", - "author": "hdockerp", - "website_url": "https://dot.gov/some/cool/link/that/goes/nowhere", - "github_url": "addtoany.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Disturbing Behavior", - "description": "felis fusce posuere felis sed lacus morbi sem mauris laoreet ut rhoncus aliquet pulvinar sed nisl nunc rhoncus dui vel sem sed sagittis nam congue risus semper", - "author": "rhoylesq", - "website_url": "https://twitter.com/some/cool/link/that/goes/nowhere", - "github_url": "imageshack.us", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Bride from Hades, The (Botan-dôrô) (Peony Lantern) (Tale of Peonies and Lanterns, A)", - "description": "proin leo odio porttitor id consequat in consequat ut nulla sed accumsan felis ut at dolor quis odio consequat varius integer ac leo pellentesque ultrices mattis odio donec", - "author": "lchoulertonr", - "website_url": "https://buzzfeed.com/some/cool/link/that/goes/nowhere", - "github_url": "mapquest.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Thin Man Goes Home, The", - "description": "auctor sed tristique in tempus sit amet sem fusce consequat nulla nisl nunc nisl duis", - "author": "ltokleys", - "website_url": "https://instagram.com/some/cool/link/that/goes/nowhere", - "github_url": "soup.io", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Fat Albert", - "description": "magnis dis parturient montes nascetur ridiculus mus vivamus vestibulum sagittis sapien cum sociis natoque penatibus et magnis dis parturient montes nascetur ridiculus mus etiam vel augue vestibulum rutrum rutrum", - "author": "tbalshawt", - "website_url": "https://miitbeian.gov.cn/some/cool/link/that/goes/nowhere", - "github_url": "nationalgeographic.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Club Fed", - "description": "sem fusce consequat nulla nisl nunc nisl duis bibendum felis sed interdum venenatis turpis enim blandit mi in", - "author": "bparteneru", - "website_url": "https://arizona.edu/some/cool/link/that/goes/nowhere", - "github_url": "google.co.jp", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Clown and the Kid, The", - "description": "suspendisse potenti in eleifend quam a odio in hac habitasse platea dictumst maecenas ut massa quis augue luctus", - "author": "sbencherv", - "website_url": "https://unblog.fr/some/cool/link/that/goes/nowhere", - "github_url": "mac.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Horror Express", - "description": "iaculis congue vivamus metus arcu adipiscing molestie hendrerit at vulputate vitae nisl aenean lectus pellentesque eget nunc donec quis orci eget orci vehicula condimentum curabitur in", - "author": "velsmorew", - "website_url": "https://earthlink.net/some/cool/link/that/goes/nowhere", - "github_url": "yale.edu", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Green Wave, The", - "description": "pellentesque ultrices mattis odio donec vitae nisi nam ultrices libero non mattis pulvinar nulla pede ullamcorper augue a suscipit nulla", - "author": "vhatchmanx", - "website_url": "https://twitter.com/some/cool/link/that/goes/nowhere", - "github_url": "bizjournals.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Billy the Kid vs. Dracula", - "description": "suscipit ligula in lacus curabitur at ipsum ac tellus semper interdum mauris ullamcorper purus sit amet nulla quisque arcu libero rutrum ac lobortis", - "author": "rdalgettyy", - "website_url": "https://foxnews.com/some/cool/link/that/goes/nowhere", - "github_url": "1688.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Big Doll House, The", - "description": "potenti nullam porttitor lacus at turpis donec posuere metus vitae ipsum aliquam non mauris morbi non lectus aliquam sit amet diam in magna bibendum imperdiet nullam orci pede", - "author": "mruthvenz", - "website_url": "https://arstechnica.com/some/cool/link/that/goes/nowhere", - "github_url": "facebook.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Ira and Abby", - "description": "cras in purus eu magna vulputate luctus cum sociis natoque penatibus et magnis dis parturient montes nascetur", - "author": "bwolseley10", - "website_url": "https://cmu.edu/some/cool/link/that/goes/nowhere", - "github_url": "cbslocal.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Maze", - "description": "adipiscing lorem vitae mattis nibh ligula nec sem duis aliquam convallis nunc proin at turpis a pede posuere nonummy integer non velit", - "author": "tlafay11", - "website_url": "https://mail.ru/some/cool/link/that/goes/nowhere", - "github_url": "netscape.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "From Beyond the Grave (Creatures)", - "description": "in quam fringilla rhoncus mauris enim leo rhoncus sed vestibulum sit amet cursus id turpis integer aliquet massa id lobortis convallis tortor risus dapibus", - "author": "slawrance12", - "website_url": "https://linkedin.com/some/cool/link/that/goes/nowhere", - "github_url": "wunderground.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Love Don't Cost a Thing", - "description": "cubilia curae nulla dapibus dolor vel est donec odio justo sollicitudin ut suscipit a feugiat et eros vestibulum ac", - "author": "ebrach13", - "website_url": "https://sciencedirect.com/some/cool/link/that/goes/nowhere", - "github_url": "sina.com.cn", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Finding Nemo", - "description": "scelerisque quam turpis adipiscing lorem vitae mattis nibh ligula nec sem duis aliquam convallis nunc proin at turpis a pede posuere nonummy integer non velit", - "author": "jlattey14", - "website_url": "https://hc360.com/some/cool/link/that/goes/nowhere", - "github_url": "state.gov", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Matrix Reloaded, The", - "description": "vel lectus in quam fringilla rhoncus mauris enim leo rhoncus sed vestibulum sit amet cursus id turpis integer aliquet massa id lobortis convallis tortor risus dapibus augue", - "author": "straves15", - "website_url": "https://auda.org.au/some/cool/link/that/goes/nowhere", - "github_url": "ifeng.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Aces and Eights", - "description": "non ligula pellentesque ultrices phasellus id sapien in sapien iaculis congue vivamus metus arcu adipiscing molestie hendrerit at vulputate vitae nisl aenean", - "author": "emacgettigen16", - "website_url": "https://china.com.cn/some/cool/link/that/goes/nowhere", - "github_url": "youtu.be", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Make It Happen", - "description": "in congue etiam justo etiam pretium iaculis justo in hac habitasse platea dictumst etiam faucibus cursus urna ut tellus", - "author": "oatkinson17", - "website_url": "https://amazon.de/some/cool/link/that/goes/nowhere", - "github_url": "acquirethisname.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Kids for Cash", - "description": "odio consequat varius integer ac leo pellentesque ultrices mattis odio donec vitae nisi nam ultrices libero non mattis pulvinar nulla pede ullamcorper augue a", - "author": "eetoile18", - "website_url": "https://umich.edu/some/cool/link/that/goes/nowhere", - "github_url": "go.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Scarlet Pimpernel, The", - "description": "mattis odio donec vitae nisi nam ultrices libero non mattis pulvinar nulla pede ullamcorper augue a suscipit nulla elit ac", - "author": "dyakubovics19", - "website_url": "https://wisc.edu/some/cool/link/that/goes/nowhere", - "github_url": "instagram.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Burmese Harp, The (Biruma no tategoto)", - "description": "sed tincidunt eu felis fusce posuere felis sed lacus morbi sem mauris laoreet ut rhoncus aliquet pulvinar sed nisl nunc rhoncus dui vel sem sed sagittis nam", - "author": "rkochs1a", - "website_url": "https://geocities.jp/some/cool/link/that/goes/nowhere", - "github_url": "fda.gov", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "War", - "description": "sollicitudin ut suscipit a feugiat et eros vestibulum ac est lacinia nisi venenatis tristique fusce congue diam id ornare imperdiet", - "author": "mhaibel1b", - "website_url": "https://seattletimes.com/some/cool/link/that/goes/nowhere", - "github_url": "clickbank.net", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Rookie, The", - "description": "elementum nullam varius nulla facilisi cras non velit nec nisi vulputate nonummy maecenas tincidunt lacus at velit vivamus", - "author": "eroony1c", - "website_url": "https://cnn.com/some/cool/link/that/goes/nowhere", - "github_url": "va.gov", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Two English Girls (Les deux anglaises et le continent)", - "description": "ut massa volutpat convallis morbi odio odio elementum eu interdum eu tincidunt in leo maecenas pulvinar lobortis est phasellus sit amet", - "author": "mcaldron1d", - "website_url": "https://sakura.ne.jp/some/cool/link/that/goes/nowhere", - "github_url": "yahoo.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Shall We Kiss? (Un baiser s'il vous plait)", - "description": "turpis a pede posuere nonummy integer non velit donec diam neque vestibulum eget vulputate ut ultrices vel augue vestibulum ante ipsum primis in faucibus orci luctus", - "author": "dmethringham1e", - "website_url": "https://naver.com/some/cool/link/that/goes/nowhere", - "github_url": "netscape.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Werewolves on Wheels", - "description": "urna pretium nisl ut volutpat sapien arcu sed augue aliquam erat volutpat in congue etiam justo etiam pretium iaculis justo in hac habitasse platea", - "author": "mgavini1f", - "website_url": "https://goodreads.com/some/cool/link/that/goes/nowhere", - "github_url": "simplemachines.org", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Naked", - "description": "ut massa volutpat convallis morbi odio odio elementum eu interdum eu tincidunt in leo maecenas pulvinar lobortis est phasellus sit amet erat nulla", - "author": "kaloshkin1g", - "website_url": "https://canalblog.com/some/cool/link/that/goes/nowhere", - "github_url": "exblog.jp", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Dracula A.D. 1972", - "description": "curabitur convallis duis consequat dui nec nisi volutpat eleifend donec ut dolor morbi vel lectus in quam fringilla rhoncus mauris enim leo rhoncus sed vestibulum sit amet cursus id turpis", - "author": "lbeetham1h", - "website_url": "https://hatena.ne.jp/some/cool/link/that/goes/nowhere", - "github_url": "ihg.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Red Heat", - "description": "faucibus orci luctus et ultrices posuere cubilia curae mauris viverra diam vitae quam suspendisse potenti nullam porttitor lacus at turpis donec posuere", - "author": "dgossage1i", - "website_url": "https://oaic.gov.au/some/cool/link/that/goes/nowhere", - "github_url": "tinyurl.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Ocean's Twelve", - "description": "morbi odio odio elementum eu interdum eu tincidunt in leo maecenas pulvinar lobortis est phasellus sit amet erat nulla tempus vivamus in felis eu sapien cursus vestibulum proin", - "author": "lmenat1j", - "website_url": "https://stanford.edu/some/cool/link/that/goes/nowhere", - "github_url": "msn.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Burrowing (Man tänker sitt)", - "description": "mi integer ac neque duis bibendum morbi non quam nec dui luctus rutrum nulla tellus", - "author": "rcasoni1k", - "website_url": "https://europa.eu/some/cool/link/that/goes/nowhere", - "github_url": "dailymail.co.uk", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "American Dreams in China", - "description": "aliquet pulvinar sed nisl nunc rhoncus dui vel sem sed sagittis nam congue risus semper porta volutpat quam pede lobortis ligula sit amet eleifend pede", - "author": "jdanis1l", - "website_url": "https://businesswire.com/some/cool/link/that/goes/nowhere", - "github_url": "posterous.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Year My Voice Broke, The", - "description": "sodales scelerisque mauris sit amet eros suspendisse accumsan tortor quis turpis sed ante vivamus tortor duis mattis", - "author": "ggotcliff1m", - "website_url": "https://phoca.cz/some/cool/link/that/goes/nowhere", - "github_url": "elpais.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Snow Queen", - "description": "aliquet pulvinar sed nisl nunc rhoncus dui vel sem sed sagittis nam congue risus semper porta volutpat quam pede lobortis ligula sit amet eleifend pede libero quis orci", - "author": "eobee1n", - "website_url": "https://360.cn/some/cool/link/that/goes/nowhere", - "github_url": "sbwire.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Meshes of the Afternoon", - "description": "pretium quis lectus suspendisse potenti in eleifend quam a odio in hac habitasse platea dictumst maecenas", - "author": "slawfull1o", - "website_url": "https://illinois.edu/some/cool/link/that/goes/nowhere", - "github_url": "yahoo.co.jp", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "About Schmidt", - "description": "sagittis sapien cum sociis natoque penatibus et magnis dis parturient montes nascetur ridiculus mus etiam", - "author": "hpimer1p", - "website_url": "https://cnbc.com/some/cool/link/that/goes/nowhere", - "github_url": "nymag.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Natural City", - "description": "odio odio elementum eu interdum eu tincidunt in leo maecenas pulvinar lobortis est phasellus sit amet", - "author": "rstrelitz1q", - "website_url": "https://oracle.com/some/cool/link/that/goes/nowhere", - "github_url": "aol.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Three Colors: White (Trzy kolory: Bialy)", - "description": "consequat lectus in est risus auctor sed tristique in tempus sit amet sem fusce consequat nulla nisl nunc nisl duis bibendum felis sed interdum venenatis turpis enim blandit mi", - "author": "anoel1r", - "website_url": "https://odnoklassniki.ru/some/cool/link/that/goes/nowhere", - "github_url": "homestead.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "New Orleans Uncensored", - "description": "semper interdum mauris ullamcorper purus sit amet nulla quisque arcu libero rutrum ac lobortis vel dapibus at diam nam", - "author": "kcarlan1s", - "website_url": "https://tripadvisor.com/some/cool/link/that/goes/nowhere", - "github_url": "usa.gov", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Dirty Dingus Magee", - "description": "nunc viverra dapibus nulla suscipit ligula in lacus curabitur at ipsum ac tellus semper interdum mauris ullamcorper purus sit", - "author": "rgaishson1t", - "website_url": "https://phoca.cz/some/cool/link/that/goes/nowhere", - "github_url": "wikipedia.org", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Three Burials of Melquiades Estrada, The", - "description": "faucibus orci luctus et ultrices posuere cubilia curae nulla dapibus dolor vel est donec odio justo sollicitudin ut suscipit a feugiat", - "author": "lgiacaponi1u", - "website_url": "https://bbc.co.uk/some/cool/link/that/goes/nowhere", - "github_url": "bandcamp.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Unborn, The", - "description": "sollicitudin ut suscipit a feugiat et eros vestibulum ac est lacinia nisi venenatis tristique fusce congue diam id ornare imperdiet sapien urna pretium nisl ut volutpat sapien arcu sed augue", - "author": "fhillen1v", - "website_url": "https://altervista.org/some/cool/link/that/goes/nowhere", - "github_url": "cpanel.net", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Crimes Against Humanity", - "description": "nisl nunc rhoncus dui vel sem sed sagittis nam congue risus semper porta volutpat quam pede lobortis ligula sit amet eleifend pede libero quis", - "author": "nbearcroft1w", - "website_url": "https://skype.com/some/cool/link/that/goes/nowhere", - "github_url": "meetup.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Muppets Take Manhattan, The", - "description": "pellentesque ultrices phasellus id sapien in sapien iaculis congue vivamus metus arcu adipiscing molestie hendrerit at", - "author": "dcullon1x", - "website_url": "https://skype.com/some/cool/link/that/goes/nowhere", - "github_url": "goodreads.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Hello! How Are You? (Buna! Ce faci?)", - "description": "donec odio justo sollicitudin ut suscipit a feugiat et eros vestibulum ac est lacinia nisi venenatis", - "author": "mmangeon1y", - "website_url": "https://smh.com.au/some/cool/link/that/goes/nowhere", - "github_url": "senate.gov", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Limuzins Janu nakts krasa", - "description": "ac consequat metus sapien ut nunc vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere", - "author": "lbannester1z", - "website_url": "https://smugmug.com/some/cool/link/that/goes/nowhere", - "github_url": "clickbank.net", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Here and There (Tamo i ovde)", - "description": "nascetur ridiculus mus etiam vel augue vestibulum rutrum rutrum neque aenean auctor gravida sem praesent", - "author": "alorens20", - "website_url": "https://craigslist.org/some/cool/link/that/goes/nowhere", - "github_url": "dmoz.org", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Step Up Love Story (Futari ecchi)", - "description": "tincidunt nulla mollis molestie lorem quisque ut erat curabitur gravida nisi at nibh in hac habitasse platea dictumst aliquam", - "author": "omacgille21", - "website_url": "https://cbsnews.com/some/cool/link/that/goes/nowhere", - "github_url": "ycombinator.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "What's New, Pussycat", - "description": "et ultrices posuere cubilia curae donec pharetra magna vestibulum aliquet ultrices erat tortor sollicitudin mi sit amet lobortis sapien sapien non", - "author": "lshrigley22", - "website_url": "https://irs.gov/some/cool/link/that/goes/nowhere", - "github_url": "bloglovin.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Meshes of the Afternoon", - "description": "habitasse platea dictumst etiam faucibus cursus urna ut tellus nulla ut erat id mauris vulputate elementum nullam varius nulla facilisi cras non", - "author": "cmeakes23", - "website_url": "https://domainmarket.com/some/cool/link/that/goes/nowhere", - "github_url": "wikia.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Montenegro", - "description": "at lorem integer tincidunt ante vel ipsum praesent blandit lacinia erat vestibulum sed magna at nunc commodo", - "author": "mfomichyov24", - "website_url": "https://seesaa.net/some/cool/link/that/goes/nowhere", - "github_url": "phpbb.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Cause for Alarm!", - "description": "ligula in lacus curabitur at ipsum ac tellus semper interdum mauris ullamcorper purus sit amet nulla quisque", - "author": "zjumont25", - "website_url": "https://nationalgeographic.com/some/cool/link/that/goes/nowhere", - "github_url": "arizona.edu", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "American Virgin", - "description": "etiam pretium iaculis justo in hac habitasse platea dictumst etiam faucibus cursus urna ut tellus nulla ut erat id mauris", - "author": "gfolling26", - "website_url": "https://zdnet.com/some/cool/link/that/goes/nowhere", - "github_url": "homestead.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Mrs. Winterbourne", - "description": "nullam porttitor lacus at turpis donec posuere metus vitae ipsum aliquam non mauris morbi non lectus aliquam sit amet diam", - "author": "mruggiero27", - "website_url": "https://paypal.com/some/cool/link/that/goes/nowhere", - "github_url": "sohu.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Last Days Here", - "description": "amet sapien dignissim vestibulum vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae nulla dapibus dolor vel est donec", - "author": "ahearty28", - "website_url": "https://purevolume.com/some/cool/link/that/goes/nowhere", - "github_url": "instagram.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Villain, The (Ek Villain)", - "description": "ut rhoncus aliquet pulvinar sed nisl nunc rhoncus dui vel sem sed sagittis nam congue risus semper", - "author": "btopling29", - "website_url": "https://t-online.de/some/cool/link/that/goes/nowhere", - "github_url": "kickstarter.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Showgirls", - "description": "platea dictumst maecenas ut massa quis augue luctus tincidunt nulla mollis molestie lorem quisque ut erat curabitur gravida nisi at nibh in hac habitasse platea", - "author": "mfritschmann2a", - "website_url": "https://seesaa.net/some/cool/link/that/goes/nowhere", - "github_url": "gravatar.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Prisoners", - "description": "justo nec condimentum neque sapien placerat ante nulla justo aliquam quis turpis eget elit sodales scelerisque mauris sit amet eros", - "author": "kdabbes2b", - "website_url": "https://usa.gov/some/cool/link/that/goes/nowhere", - "github_url": "go.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Open Water", - "description": "morbi non lectus aliquam sit amet diam in magna bibendum imperdiet nullam orci pede venenatis non sodales sed tincidunt eu felis", - "author": "mklebes2c", - "website_url": "https://wordpress.com/some/cool/link/that/goes/nowhere", - "github_url": "about.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Maîtresse (Mistress)", - "description": "ut erat id mauris vulputate elementum nullam varius nulla facilisi cras non velit nec nisi vulputate nonummy maecenas tincidunt lacus at", - "author": "sker2d", - "website_url": "https://blinklist.com/some/cool/link/that/goes/nowhere", - "github_url": "weather.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "I giorni contati", - "description": "posuere cubilia curae duis faucibus accumsan odio curabitur convallis duis consequat dui nec nisi volutpat eleifend donec ut dolor morbi vel lectus in quam", - "author": "zdibdin2e", - "website_url": "https://taobao.com/some/cool/link/that/goes/nowhere", - "github_url": "canalblog.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Alien Cargo", - "description": "ut mauris eget massa tempor convallis nulla neque libero convallis eget eleifend luctus ultricies eu nibh", - "author": "btidswell2f", - "website_url": "https://hp.com/some/cool/link/that/goes/nowhere", - "github_url": "163.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Murder on the Orient Express", - "description": "est donec odio justo sollicitudin ut suscipit a feugiat et eros vestibulum ac est lacinia nisi venenatis tristique fusce congue diam id ornare imperdiet sapien urna pretium nisl", - "author": "mrelfe2g", - "website_url": "https://homestead.com/some/cool/link/that/goes/nowhere", - "github_url": "privacy.gov.au", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Back to the Secret Garden", - "description": "maecenas rhoncus aliquam lacus morbi quis tortor id nulla ultrices aliquet maecenas leo odio condimentum id luctus nec molestie sed justo pellentesque viverra pede ac", - "author": "zheys2h", - "website_url": "https://wisc.edu/some/cool/link/that/goes/nowhere", - "github_url": "sbwire.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Dragon Inn (Sun lung moon hak chan)", - "description": "in ante vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae duis faucibus accumsan odio curabitur convallis duis", - "author": "eipsly2i", - "website_url": "https://tinypic.com/some/cool/link/that/goes/nowhere", - "github_url": "foxnews.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "He Got Game", - "description": "feugiat et eros vestibulum ac est lacinia nisi venenatis tristique fusce congue diam id ornare imperdiet sapien urna pretium nisl ut volutpat sapien arcu sed augue aliquam erat", - "author": "bbiddleston2j", - "website_url": "https://soundcloud.com/some/cool/link/that/goes/nowhere", - "github_url": "instagram.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "High School", - "description": "pellentesque eget nunc donec quis orci eget orci vehicula condimentum curabitur in libero ut massa volutpat convallis morbi odio", - "author": "wleteurtre2k", - "website_url": "https://miitbeian.gov.cn/some/cool/link/that/goes/nowhere", - "github_url": "etsy.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Dark Water (Honogurai mizu no soko kara)", - "description": "metus vitae ipsum aliquam non mauris morbi non lectus aliquam sit amet diam in magna bibendum imperdiet nullam orci pede", - "author": "jledeker2l", - "website_url": "https://webeden.co.uk/some/cool/link/that/goes/nowhere", - "github_url": "europa.eu", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Men Don't Leave", - "description": "viverra dapibus nulla suscipit ligula in lacus curabitur at ipsum ac tellus semper interdum mauris ullamcorper purus sit amet nulla quisque arcu libero rutrum ac lobortis vel dapibus at", - "author": "ereville2m", - "website_url": "https://apple.com/some/cool/link/that/goes/nowhere", - "github_url": "feedburner.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Into the Sun", - "description": "sapien cum sociis natoque penatibus et magnis dis parturient montes nascetur ridiculus mus etiam vel augue vestibulum rutrum rutrum neque aenean auctor gravida", - "author": "binstock2n", - "website_url": "https://multiply.com/some/cool/link/that/goes/nowhere", - "github_url": "soup.io", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - }, - { - "title": "Coward, The (Kapurush)", - "description": "habitasse platea dictumst morbi vestibulum velit id pretium iaculis diam erat fermentum justo nec condimentum neque sapien placerat ante nulla justo aliquam quis turpis eget elit sodales scelerisque", - "author": "sharlock2o", - "website_url": "https://ftc.gov/some/cool/link/that/goes/nowhere", - "github_url": "elegantthemes.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Kiss Me (Kyss Mig)", - "description": "pede libero quis orci nullam molestie nibh in lectus pellentesque at nulla suspendisse potenti cras in purus eu magna vulputate luctus cum sociis natoque penatibus et magnis", - "author": "dpatters2p", - "website_url": "https://hp.com/some/cool/link/that/goes/nowhere", - "github_url": "symantec.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Camp Nowhere", - "description": "volutpat convallis morbi odio odio elementum eu interdum eu tincidunt in leo maecenas pulvinar lobortis", - "author": "lsummerson2q", - "website_url": "https://sbwire.com/some/cool/link/that/goes/nowhere", - "github_url": "wikipedia.org", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "library", - "published": true - }, - { - "title": "Clearing, The", - "description": "ligula in lacus curabitur at ipsum ac tellus semper interdum mauris ullamcorper purus sit amet nulla quisque arcu libero rutrum", - "author": "ludden2r", - "website_url": "https://google.co.uk/some/cool/link/that/goes/nowhere", - "github_url": "fotki.com", - "image_url": "http://dummyimage.com/600x350.png/5fa2dd/ffffff", - "type": "project", - "published": true - } -] \ No newline at end of file diff --git a/examples/elixir/example1/priv/repo/dev-seed.exs b/examples/elixir/example1/priv/repo/dev-seed.exs deleted file mode 100644 index 6d623f966..000000000 --- a/examples/elixir/example1/priv/repo/dev-seed.exs +++ /dev/null @@ -1,19 +0,0 @@ -alias BuiltWithElixir.Projects - -# Script for populating the database. You can run it as: -# -# mix run priv/repo/seeds.exs -# -# Inside the script, you can read and write to any of your -# repositories directly: -# -# BuiltWithElixir.Repo.insert!(%BuiltWithElixir.SomeSchema{}) -# -# We recommend using the bang functions (`insert!`, `update!` -# and so on) as they will fail if something goes wrong. -posts = - with {:ok, body} <- File.read("./priv/repo/dev-posts.json"), - {:ok, json} <- JSON.decode(body), - do: json - -Enum.map(posts, fn post -> Projects.create_post(post) end) diff --git a/examples/elixir/example1/priv/repo/migrations/20180409215300_create_posts.exs b/examples/elixir/example1/priv/repo/migrations/20180409215300_create_posts.exs deleted file mode 100644 index 455c89ee5..000000000 --- a/examples/elixir/example1/priv/repo/migrations/20180409215300_create_posts.exs +++ /dev/null @@ -1,16 +0,0 @@ -defmodule BuiltWithElixir.Repo.Migrations.CreatePosts do - use Ecto.Migration - - def change do - create table(:posts) do - add(:title, :string) - add(:description, :string) - add(:author, :string) - add(:website_url, :string) - add(:github_url, :string) - add(:type, :string) - - timestamps() - end - end -end diff --git a/examples/elixir/example1/priv/repo/migrations/20180410150145_add_image_url_to_posts_table.exs b/examples/elixir/example1/priv/repo/migrations/20180410150145_add_image_url_to_posts_table.exs deleted file mode 100644 index 6c71ba367..000000000 --- a/examples/elixir/example1/priv/repo/migrations/20180410150145_add_image_url_to_posts_table.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule BuiltWithElixir.Repo.Migrations.AddImageUrlToPostsTable do - use Ecto.Migration - - def change do - alter table(:posts) do - add :image_url, :string - end - end -end diff --git a/examples/elixir/example1/priv/repo/migrations/20180416212939_update_description_length_on_posts.exs b/examples/elixir/example1/priv/repo/migrations/20180416212939_update_description_length_on_posts.exs deleted file mode 100644 index 01e2e07d4..000000000 --- a/examples/elixir/example1/priv/repo/migrations/20180416212939_update_description_length_on_posts.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule BuiltWithElixir.Repo.Migrations.UpdateDescriptionLengthOnPosts do - use Ecto.Migration - - def change do - alter table(:posts) do - modify :description, :string, size: 1024 - end - end -end diff --git a/examples/elixir/example1/priv/repo/migrations/20180421045402_add_published_status_and_email_to_posts.exs b/examples/elixir/example1/priv/repo/migrations/20180421045402_add_published_status_and_email_to_posts.exs deleted file mode 100644 index ec0823878..000000000 --- a/examples/elixir/example1/priv/repo/migrations/20180421045402_add_published_status_and_email_to_posts.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule BuiltWithElixir.Repo.Migrations.AddPublishedStatusToPosts do - use Ecto.Migration - - def change do - alter table(:posts) do - add(:published, :boolean, default: false) - add(:author_email, :string) - end - end -end diff --git a/examples/elixir/example1/priv/repo/prod-posts.json b/examples/elixir/example1/priv/repo/prod-posts.json deleted file mode 100644 index 6b22991ea..000000000 --- a/examples/elixir/example1/priv/repo/prod-posts.json +++ /dev/null @@ -1,245 +0,0 @@ -[ - { - "title": "Texto OCR", - "description": "A simple web app to extract text found in images. This project was created using Phoenix and Elixir.", - "author": "Edgar Pino", - "website_url": "https://image-to-text.edgardev.com/", - "github_url": "https://github.com/edgar971/image_to_text", - "image_url": "/images/projects/image-to-text_600x350.png", - "type": "website" - }, - { - "title": "Meeseeks", - "description": "An Elixir library for parsing and extracting data from HTML and XML with CSS or XPath selectors.", - "author": "Mischov", - "website_url": "https://hexdocs.pm/meeseeks/Meeseeks.html", - "github_url": "https://github.com/mischov/meeseeks", - "image_url": "/images/projects/meeseeks.png", - "type": "library" - }, - { - "title": "FunWithFlags", - "description": "FunWithFlags is an OTP application that provides a 2-level storage to save and retrieve feature flags, an Elixir API to toggle and query them, and a web dashboard as control panel. ", - "author": "Tommaso Pavese", - "website_url": "https://hexdocs.pm/fun_with_flags/FunWithFlags.html", - "github_url": "https://github.com/tompave/fun_with_flags", - "image_url": "/images/projects/fun-with-flags.png", - "type": "library" - }, - { - "title": "RemoteRetro", - "description": "A real-time application for conducting Agile retrospectives with distributed teams.", - "author": "Travis Vander Hoop", - "website_url": "https://remoteretro.org/", - "github_url": "https://github.com/stride-nyc/remote_retro", - "image_url": "/images/projects/remote-retro.png", - "type": "website" - }, - { - "title": "Credo", - "description": "A static code analysis tool for the Elixir language with a focus on code consistency and teaching.", - "author": "René Föhring", - "website_url": "http://credo-ci.org/", - "github_url": "https://github.com/rrrene/credo", - "image_url": "/images/projects/credo.png", - "type": "website" - }, - { - "title": "Pickpocket", - "description": "Pickpocket helps Millennials and their loved ones repay student debt by taking a percentage of their spending and using it to pay down their student loans.", - "author": "Will Gilman", - "website_url": "https://pickpocket.me", - "github_url": null, - "image_url": "/images/projects/pickpocket.png", - "type": "website" - }, - { - "title": "Sprint Poker", - "description": "Easiest tool for your team's regular weekly sprint planning sessions.", - "author": "Michał Kalbarczyk", - "website_url": "https://sprintpoker.io/", - "github_url": "https://github.com/elpassion/sprint-poker", - "image_url": "/images/projects/sprintpoker.png", - "type": "website" - }, - { - "title": "ElixirFiddle", - "description": "Experiment and share Elixir code with others!", - "author": "KickinEspresso", - "website_url": "https://elixirfiddle.com/", - "github_url": null, - "image_url": "/images/projects/elixirfiddle.png", - "type": "website" - }, - { - "title": "Talkery", - "description": "Talkery is a free platform for finding and staying up to date with the newest and greatest talks in the topics you’re interested in. It allows you to filter conference talks by topics (e.g. React, Rails, Rust) as well as conferences (e.g. GOTO 2017). It also allows you to follow these topics and get notified when new talks are released.", - "author": "Harrison Lucas", - "website_url": "https://talkery.io", - "github_url": null, - "image_url": "/images/projects/talkery.png", - "type": "website" - }, - { - "title": "Alchemist Camp", - "author": "Alchemist Camp", - "description": "Alchemist Camp is a resource with several dozen free screencasts for learning Elixir and Phoenix. It's mostly longer-form, project based episodes.", - "website_url": "https://alchemist.camp ", - "github_url": null, - "image_url": "/images/projects/alchemist.png", - "type": "website" - }, - { - "title": "StatWatch", - "author": "Alchemist Camp", - "description": "StatWatch is a simple stat-tracking app that will record how many twitter followers, YouTube subscribers, YouTube views you have as well as the Alexa Rank of your site.", - "website_url": "https://statwatch.me", - "github_url": null, - "image_url": "/images/projects/statwatch.png", - "type": "website" - }, - { - "title": "Compost Connect", - "author": "jnmandal", - "description": "Marketplace for composting", - "website_url": "https://www.compost-connect.com", - "github_url": null, - "image_url": "/images/projects/compost-connect.png", - "type": "website" - }, - { - "title": "Code::Stats", - "author": "Nicd", - "description": "Free stats tracking service for programmers.", - "website_url": "https://codestats.net/", - "github_url": "https://gitlab.com/code-stats/code-stats", - "image_url": "/images/projects/codestats.png", - "type": "website" - }, - { - "title": "Almost Dead .net", - "author": "alxndr", - "description": "Still a work in progress... Keeping track of setlists played by the band Joe Russo's Almost Dead.", - "website_url": "http://almost-dead.net", - "github_url": null, - "image_url": "/images/projects/almost-dead.png", - "type": "website" - }, - { - "title": "Fryse", - "author": "Phillipp Ohlandt", - "description": "A Static Site Generator which aims to be generic and scriptable", - "website_url": null, - "github_url": "https://github.com/fryse/fryse", - "image_url": "/images/projects/fryse.png", - "type": "library" - }, - { - "title": "Crypto Coin Prices", - "author": "Marcos B. L.", - "description": "Crypto Coin Prices provide tools, prices and tickers comparison directly from exchanges!", - "website_url": "https://cryptocoinprices.io/", - "github_url": null, - "image_url": "/images/projects/cryptocoinprices.png", - "type": "website" - }, - { - "title": "Magnetissimo", - "author": "Sergio Tapia", - "description": "Scrapes torrent sites and serves results.", - "website_url": null, - "github_url": "https://github.com/sergiotapia/magnetissimo", - "image_url": "/images/projects/magnetissimo.png", - "type": "website" - }, - { - "title": "ElixirCasts", - "author": "Alekx", - "description": "Elixir and Phoenix Screencasts.", - "website_url": "https://elixircasts.io", - "github_url": null, - "image_url": "/images/projects/elixircasts.png", - "type": "website" - }, - { - "title": "Cooking With Link", - "author": "Geoffrey Lessel", - "description": "Search for and filter Zelda: Breath of the Wild cooking recipes.", - "website_url": "http://cookingwithlink.com", - "github_url": null, - "image_url": "/images/projects/cookingwithlink.png", - "type": "website" - }, - { - "title": "ChatBroom", - "author": "Geoffrey Lessel", - "description": "A highly-temporal chat room service with no database and no memory of the past.", - "website_url": "https://chatbroom.com", - "github_url": null, - "image_url": "/images/projects/chatbroom.png", - "type": "website" - }, - { - "title": "Smileys Pub", - "author": "Tyler Pierce", - "description": "Reddit-clone for-fun learning project.", - "website_url": "https://smileys.pub", - "github_url": "https://github.com/smileys-tavern/smileys_umbrella", - "image_url": "/images/projects/smileys.jpg", - "type": "website" - }, - { - "title": "Verk", - "author": "Eduardo Gurgel", - "description": "Job processing system backed by Redis.", - "website_url": null, - "github_url": "https://github.com/edgurgel/verk", - "image_url": "/images/projects/verk.png", - "type": "library" - }, - { - "title": "ExVenture", - "author": "Eric Oestrich", - "description": "A MUD (Multi-User Dungeon) server.", - "website_url": "https://exventure.org", - "github_url": "https://github.com/oestrich/ex_venture", - "image_url": "/images/projects/ex_venture.png", - "type": "website" - }, - { - "title": "Oopsie", - "author": "Coletiv Studio", - "description": "Oopsie is a hassle-free, online ordering platform that connects neighbouring restaurants and diners.", - "website_url": "https://www.oopsie.hk", - "github_url": null, - "image_url": "/images/projects/oopsie.png", - "type": "website" - }, - { - "title": "Syndicate App", - "author": "Jon L", - "description": "A tool to automate email arrival to your inbox. It acts as an intermediary between your actual inbox and anything that sends email. You can think of it as a mask for you personal email with a bit of automation on top.", - "website_url": "https://syndicateapp.site", - "github_url": null, - "image_url": "/images/projects/syndicateapp.png", - "type": "website" - }, - { - "title": "GitMonitor", - "author": "AlexW", - "description": "Custom alerts for your Github repositories.", - "website_url": "https://gitmonitor.com/", - "github_url": null, - "image_url": "/images/projects/gitmonitor.png", - "type": "website" - }, - { - "title": "Twitter Emoji Map", - "author": "Twitter Emoji Map", - "description": "Twitter Emoji Map built with Elixir's GenStage and Angular. A simple map that shows all geotagged tweets worldwide and in real-time that contain an emoji. It is really fast. Try for yourself by tweeting anything with an emoji and a location and see the tweet pop up on the map in milliseconds.", - "website_url": "http://emojimap.ospaarmann.com/", - "github_url": "https://github.com/ospaarmann/ex-emoji-map", - "image_url": "/images/projects/emojimap.png", - "type": "website" - } -] \ No newline at end of file diff --git a/examples/elixir/example1/priv/repo/prod-seed.exs b/examples/elixir/example1/priv/repo/prod-seed.exs deleted file mode 100644 index 5c693a29a..000000000 --- a/examples/elixir/example1/priv/repo/prod-seed.exs +++ /dev/null @@ -1,19 +0,0 @@ -alias BuiltWithElixir.Projects - -# Script for populating the database. You can run it as: -# -# mix run priv/repo/seeds.exs -# -# Inside the script, you can read and write to any of your -# repositories directly: -# -# BuiltWithElixir.Repo.insert!(%BuiltWithElixir.SomeSchema{}) -# -# We recommend using the bang functions (`insert!`, `update!` -# and so on) as they will fail if something goes wrong. -posts = - with {:ok, body} <- File.read("./priv/repo/prod-posts.json"), - {:ok, json} <- JSON.decode(body), - do: json - -Enum.map(posts, fn post -> Projects.create_post(post) end) diff --git a/examples/elixir/example1/test/built_with_elixir/posts/posts_test.exs b/examples/elixir/example1/test/built_with_elixir/posts/posts_test.exs deleted file mode 100644 index 027bee582..000000000 --- a/examples/elixir/example1/test/built_with_elixir/posts/posts_test.exs +++ /dev/null @@ -1,156 +0,0 @@ -defmodule BuiltWithElixir.ProjectsTest do - use BuiltWithElixir.DataCase - - alias BuiltWithElixir.Projects - - describe "posts" do - alias BuiltWithElixir.Projects.Post - - @valid_attrs %{ - author: "some author", - description: - "some description some description some description some description some description some description some description some description some description some description some description some description some description some description some description some description some description some description some description some description some description some description some description some description", - github_url: "some github_url", - title: "some title", - type: "some type", - website_url: "some website_url", - image_url: "some image_url", - published: false, - author_email: "something@me.com" - } - @update_attrs %{ - author: "some updated author", - description: "some updated description", - github_url: "some updated github_url", - title: "some updated title", - type: "some updated type", - website_url: "some updated website_url", - image_url: "some updated image_url", - published: true, - author_email: "something@updated.com" - } - @invalid_attrs %{ - author: nil, - description: nil, - github_url: nil, - title: nil, - type: nil, - website_url: nil, - image_url: nil, - published: false, - author_email: nil - } - - def post_fixture(attrs \\ %{}) do - {:ok, post} = - attrs - |> Enum.into(@valid_attrs) - |> Projects.create_post() - - post - end - - test "list_posts/0 returns all published posts" do - post_1 = post_fixture(%{published: true}) - post_2 = post_fixture(%{published: true}) - post_3 = post_fixture(%{published: true}) - post_fixture(%{published: false}) - - assert Projects.list_posts() == [post_3, post_2, post_1] - end - - test "list_posts/0 returns all unpublished posts" do - post_fixture() - post_fixture() - post_fixture() - post_fixture() - - assert Projects.list_posts() == [] - end - - test "list_posts/2 returns the requested published posts with limit and offet" do - posts = - 1..15 - |> Enum.to_list() - |> Enum.map(fn _ -> post_fixture(%{published: true}) end) - - assert Enum.count(Projects.list_posts(0)) == 10 - assert Enum.count(Projects.list_posts(0, 2)) == 2 - assert Enum.count(Projects.list_posts(10)) == 5 - assert Projects.list_posts(20) == [] - assert Projects.list_posts(0, 20) == Enum.reverse(posts) - end - - test "get_post!/1 returns the post with given id" do - post = post_fixture() - assert Projects.get_post!(post.id) == post - end - - test "create_post/1 with valid data creates a post" do - assert {:ok, %Post{} = post} = Projects.create_post(@valid_attrs) - assert post.author == "some author" - assert post.description == @valid_attrs.description - assert post.github_url == "some github_url" - assert post.title == "some title" - assert post.type == "some type" - assert post.website_url == "some website_url" - assert post.image_url == "some image_url" - assert post.author_email == "something@me.com" - assert post.published == false - end - - test "create_post/1 with valid optional data creates a post" do - test_post = - %{ - github_url: nil, - website_url: nil, - author_email: nil - } - |> Enum.into(@valid_attrs) - - assert {:ok, %Post{} = post} = Projects.create_post(test_post) - assert post.author == "some author" - assert post.description == @valid_attrs.description - assert post.title == "some title" - assert post.type == "some type" - assert post.image_url == "some image_url" - assert post.published == false - end - - test "create_post/1 with invalid data returns error changeset" do - assert {:error, %Ecto.Changeset{}} = Projects.create_post(@invalid_attrs) - end - - test "update_post/2 with valid data updates the post" do - post = post_fixture() - assert {:ok, post} = Projects.update_post(post, @update_attrs) - assert %Post{} = post - assert post.author == "some updated author" - assert post.description == "some updated description" - assert post.github_url == "some updated github_url" - assert post.title == "some updated title" - assert post.type == "some updated type" - assert post.website_url == "some updated website_url" - assert post.image_url == "some updated image_url" - assert post.published == true - assert post.author_email == "something@updated.com" - end - - test "update_post/2 with invalid data returns error changeset" do - post = post_fixture() - assert {:error, %Ecto.Changeset{}} = Projects.update_post(post, @invalid_attrs) - assert post == Projects.get_post!(post.id) - end - - test "delete_post/1 deletes the post" do - post = post_fixture() - assert {:ok, %Post{}} = Projects.delete_post(post) - assert_raise Ecto.NoResultsError, fn -> Projects.get_post!(post.id) end - end - - test "change_post/1 returns a post changeset" do - post = post_fixture() - assert %Ecto.Changeset{} = Projects.change_post(post) - end - end -end diff --git a/examples/elixir/example1/test/built_with_elixir/utils/cloudinary_test.exs b/examples/elixir/example1/test/built_with_elixir/utils/cloudinary_test.exs deleted file mode 100644 index e30f6c127..000000000 --- a/examples/elixir/example1/test/built_with_elixir/utils/cloudinary_test.exs +++ /dev/null @@ -1,24 +0,0 @@ -defmodule BuiltWithElixir.Utils.CloudinaryTest do - use ExUnit.Case - - alias BuiltWithElixir.Utils.Cloudinary - - describe "generate_image_url" do - test "generating a url successfully" do - base = Application.get_env(:built_with_elixir, :cloudinary_base_url) - public_id = "cool_image" - expected_url = "#{base}/image/upload/t_elixir_project_preview/#{public_id}" - - assert Cloudinary.generate_image_url(public_id) == expected_url - end - - test "generating a url successfully with custom transformation" do - base = Application.get_env(:built_with_elixir, :cloudinary_base_url) - transformation = "cool_transformation" - public_id = "cool_image" - expected_url = "#{base}/image/upload/#{transformation}/#{public_id}" - - assert Cloudinary.generate_image_url(public_id, transformation) == expected_url - end - end -end diff --git a/examples/elixir/example1/test/built_with_elixir_web/controllers/page_controller_test.exs b/examples/elixir/example1/test/built_with_elixir_web/controllers/page_controller_test.exs deleted file mode 100644 index 03eebd4b0..000000000 --- a/examples/elixir/example1/test/built_with_elixir_web/controllers/page_controller_test.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule BuiltWithElixirWeb.PageControllerTest do - use BuiltWithElixirWeb.ConnCase - - test "GET /", %{conn: conn} do - conn = get(conn, "/") - - assert html_response(conn, 200) =~ - "Built With Elixir - A place to discover projects built with Elixir." - end -end diff --git a/examples/elixir/example1/test/built_with_elixir_web/controllers/post_controller_test.exs b/examples/elixir/example1/test/built_with_elixir_web/controllers/post_controller_test.exs deleted file mode 100644 index 055e19adf..000000000 --- a/examples/elixir/example1/test/built_with_elixir_web/controllers/post_controller_test.exs +++ /dev/null @@ -1,159 +0,0 @@ -defmodule BuiltWithElixirWeb.PostControllerTest do - use BuiltWithElixirWeb.ConnCase - - alias BuiltWithElixir.Projects - - @create_attrs %{ - "author" => "some author", - "description" => "some description", - "github_url" => "some github_url", - "title" => "some title", - "type" => "some type", - "website_url" => "some website_url", - "image_url" => "some image_url" - } - - @form_create_attrs %{ - "author" => "some author", - "description" => "some description", - "github_url" => "some github_url", - "title" => "some title", - "type" => "some type", - "website_url" => "some website_url", - "image_url" => "some image_url", - "author_email" => "edgar@me.com" - } - - @form_create_attrs_with_file %{ - "author" => "some author", - "description" => "some description", - "github_url" => "some github_url", - "title" => "some title", - "type" => "some type", - "website_url" => "some website_url", - "image_file" => %Plug.Upload{ - content_type: "image/png", - path: "test/assets/no-text.png", - filename: "no-text.png" - }, - "author_email" => "edgar@me.com" - } - - def fixture(:post) do - {:ok, post} = - %{"published" => true} - |> Enum.into(@create_attrs) - |> Projects.create_post() - - post - end - - def fixture(:multiple_posts) do - 1..15 - |> Enum.to_list() - |> Enum.map(fn _ -> - %{"published" => true} - |> Enum.into(@create_attrs) - |> Projects.create_post() - end) - end - - setup %{conn: conn} do - {:ok, conn: put_req_header(conn, "accept", "application/json")} - end - - describe "index" do - setup [:create_post] - - test "lists all posts", %{conn: conn} do - conn = get(conn, post_path(conn, :index)) - response = hd(json_response(conn, 200)["data"]) - - assert response === - Enum.into( - %{"id" => response["id"], "inserted_at" => response["inserted_at"]}, - @create_attrs - ) - end - end - - describe "index with limit and offet" do - setup [:create_multilple_posts] - - test "list posts with offset", %{conn: conn} do - conn = get(conn, post_path(conn, :index), offset: 10) - response = json_response(conn, 200)["data"] - - assert Enum.count(response) == 5 - end - - test "list posts with limit", %{conn: conn} do - conn = get(conn, post_path(conn, :index), limit: 3) - response = json_response(conn, 200)["data"] - - assert Enum.count(response) == 3 - end - - test "list posts with offset and limit", %{conn: conn} do - conn = get(conn, post_path(conn, :index), offset: 1, limit: 20) - response = json_response(conn, 200)["data"] - - assert Enum.count(response) == 14 - end - end - - describe "show" do - setup [:create_post] - - test "single existing post", %{conn: conn, post: post} do - conn = get(conn, post_path(conn, :show, post.id)) - response = json_response(conn, 200)["data"] - - assert response === - Enum.into( - %{"id" => response["id"], "inserted_at" => response["inserted_at"]}, - @create_attrs - ) - end - end - - describe "create" do - test "a single post", %{conn: conn} do - conn = post(conn, post_path(conn, :create, @form_create_attrs)) - response = json_response(conn, 201)["data"] - - # add the id and inserted_at - assert response === - %{"id" => response["id"], "inserted_at" => response["inserted_at"]} - |> Enum.into(@form_create_attrs) - # remove the author_email since it's not in the response - |> Map.delete("author_email") - end - - test "a single post with an image file upload", %{conn: conn} do - conn = post(conn, post_path(conn, :create), @form_create_attrs_with_file) - response = json_response(conn, 201)["data"] - - assert response === - %{ - "id" => response["id"], - "inserted_at" => response["inserted_at"], - "image_url" => response["image_url"] - } - |> Enum.into(@form_create_attrs_with_file) - # remove the author_email since it's not in the response - |> Map.delete("author_email") - |> Map.delete("image_file") - end - end - - defp create_post(_) do - post = fixture(:post) - {:ok, post: post} - end - - defp create_multilple_posts(_) do - posts = fixture(:multiple_posts) - {:ok, posts: posts} - end -end diff --git a/examples/elixir/example1/test/built_with_elixir_web/views/error_view_test.exs b/examples/elixir/example1/test/built_with_elixir_web/views/error_view_test.exs deleted file mode 100644 index 9419d157a..000000000 --- a/examples/elixir/example1/test/built_with_elixir_web/views/error_view_test.exs +++ /dev/null @@ -1,20 +0,0 @@ -defmodule BuiltWithElixirWeb.ErrorViewTest do - use BuiltWithElixirWeb.ConnCase, async: true - - # Bring render/3 and render_to_string/3 for testing custom views - import Phoenix.View - - test "renders 404.html" do - assert render_to_string(BuiltWithElixirWeb.ErrorView, "404.html", []) == "Page not found" - end - - test "render 500.html" do - assert render_to_string(BuiltWithElixirWeb.ErrorView, "500.html", []) == - "Internal server error" - end - - test "render any other" do - assert render_to_string(BuiltWithElixirWeb.ErrorView, "505.html", []) == - "Internal server error" - end -end diff --git a/examples/elixir/example1/test/built_with_elixir_web/views/layout_view_test.exs b/examples/elixir/example1/test/built_with_elixir_web/views/layout_view_test.exs deleted file mode 100644 index ae5944558..000000000 --- a/examples/elixir/example1/test/built_with_elixir_web/views/layout_view_test.exs +++ /dev/null @@ -1,3 +0,0 @@ -defmodule BuiltWithElixirWeb.LayoutViewTest do - use BuiltWithElixirWeb.ConnCase, async: true -end diff --git a/examples/elixir/example1/test/built_with_elixir_web/views/page_view_test.exs b/examples/elixir/example1/test/built_with_elixir_web/views/page_view_test.exs deleted file mode 100644 index 45d638ef0..000000000 --- a/examples/elixir/example1/test/built_with_elixir_web/views/page_view_test.exs +++ /dev/null @@ -1,3 +0,0 @@ -defmodule BuiltWithElixirWeb.PageViewTest do - use BuiltWithElixirWeb.ConnCase, async: true -end diff --git a/examples/elixir/example1/test/stubs/cloudini.ex b/examples/elixir/example1/test/stubs/cloudini.ex deleted file mode 100644 index f891145ce..000000000 --- a/examples/elixir/example1/test/stubs/cloudini.ex +++ /dev/null @@ -1,19 +0,0 @@ -defmodule CloudiniStub do - @moduledoc false - - require Logger - - def upload_image(_, path, opts \\ []) do - public_id = Keyword.get(opts, :public_id, "example_pic") - - Logger.warn("[CLOUDINI-STUB] Uploading file from #{path}") - - {:ok, - %{ - "secure_url" => "https://res.cloudinary.com/demo/image/upload/lady.jpg", - "height" => 1000, - "width" => 667, - "public_id" => public_id - }} - end -end diff --git a/examples/elixir/example1/test/support/channel_case.ex b/examples/elixir/example1/test/support/channel_case.ex deleted file mode 100644 index 5b8d19b7a..000000000 --- a/examples/elixir/example1/test/support/channel_case.ex +++ /dev/null @@ -1,37 +0,0 @@ -defmodule BuiltWithElixirWeb.ChannelCase do - @moduledoc """ - This module defines the test case to be used by - channel tests. - - Such tests rely on `Phoenix.ChannelTest` and also - import other functionality to make it easier - to build common datastructures and query the data layer. - - Finally, if the test case interacts with the database, - it cannot be async. For this reason, every test runs - inside a transaction which is reset at the beginning - of the test unless the test case is marked as async. - """ - - use ExUnit.CaseTemplate - - using do - quote do - # Import conveniences for testing with channels - use Phoenix.ChannelTest - - # The default endpoint for testing - @endpoint BuiltWithElixirWeb.Endpoint - end - end - - setup tags do - :ok = Ecto.Adapters.SQL.Sandbox.checkout(BuiltWithElixir.Repo) - - unless tags[:async] do - Ecto.Adapters.SQL.Sandbox.mode(BuiltWithElixir.Repo, {:shared, self()}) - end - - :ok - end -end diff --git a/examples/elixir/example1/test/support/conn_case.ex b/examples/elixir/example1/test/support/conn_case.ex deleted file mode 100644 index 50d8a9c14..000000000 --- a/examples/elixir/example1/test/support/conn_case.ex +++ /dev/null @@ -1,38 +0,0 @@ -defmodule BuiltWithElixirWeb.ConnCase do - @moduledoc """ - This module defines the test case to be used by - tests that require setting up a connection. - - Such tests rely on `Phoenix.ConnTest` and also - import other functionality to make it easier - to build common datastructures and query the data layer. - - Finally, if the test case interacts with the database, - it cannot be async. For this reason, every test runs - inside a transaction which is reset at the beginning - of the test unless the test case is marked as async. - """ - - use ExUnit.CaseTemplate - - using do - quote do - # Import conveniences for testing with connections - use Phoenix.ConnTest - import BuiltWithElixirWeb.Router.Helpers - - # The default endpoint for testing - @endpoint BuiltWithElixirWeb.Endpoint - end - end - - setup tags do - :ok = Ecto.Adapters.SQL.Sandbox.checkout(BuiltWithElixir.Repo) - - unless tags[:async] do - Ecto.Adapters.SQL.Sandbox.mode(BuiltWithElixir.Repo, {:shared, self()}) - end - - {:ok, conn: Phoenix.ConnTest.build_conn()} - end -end diff --git a/examples/elixir/example1/test/support/data_case.ex b/examples/elixir/example1/test/support/data_case.ex deleted file mode 100644 index be72289cb..000000000 --- a/examples/elixir/example1/test/support/data_case.ex +++ /dev/null @@ -1,53 +0,0 @@ -defmodule BuiltWithElixir.DataCase do - @moduledoc """ - This module defines the setup for tests requiring - access to the application's data layer. - - You may define functions here to be used as helpers in - your tests. - - Finally, if the test case interacts with the database, - it cannot be async. For this reason, every test runs - inside a transaction which is reset at the beginning - of the test unless the test case is marked as async. - """ - - use ExUnit.CaseTemplate - - using do - quote do - alias BuiltWithElixir.Repo - - import Ecto - import Ecto.Changeset - import Ecto.Query - import BuiltWithElixir.DataCase - end - end - - setup tags do - :ok = Ecto.Adapters.SQL.Sandbox.checkout(BuiltWithElixir.Repo) - - unless tags[:async] do - Ecto.Adapters.SQL.Sandbox.mode(BuiltWithElixir.Repo, {:shared, self()}) - end - - :ok - end - - @doc """ - A helper that transform changeset errors to a map of messages. - - assert {:error, changeset} = Accounts.create_user(%{password: "short"}) - assert "password is too short" in errors_on(changeset).password - assert %{password: ["password is too short"]} = errors_on(changeset) - - """ - def errors_on(changeset) do - Ecto.Changeset.traverse_errors(changeset, fn {message, opts} -> - Enum.reduce(opts, message, fn {key, value}, acc -> - String.replace(acc, "%{#{key}}", to_string(value)) - end) - end) - end -end diff --git a/examples/elixir/example1/test/test_helper.exs b/examples/elixir/example1/test/test_helper.exs deleted file mode 100644 index 18e13c3b6..000000000 --- a/examples/elixir/example1/test/test_helper.exs +++ /dev/null @@ -1,5 +0,0 @@ -Code.load_file("test/stubs/cloudini.ex") - -ExUnit.start() - -Ecto.Adapters.SQL.Sandbox.mode(BuiltWithElixir.Repo, :manual) diff --git a/examples/go/example1/api/routes/healthcheck.go b/examples/go/example1/api/routes/healthcheck.go deleted file mode 100644 index 295e41ae6..000000000 --- a/examples/go/example1/api/routes/healthcheck.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// nolint -package routes - -import ( - "net/http" - - "github.com/labstack/echo" -) - -// Healthcheck is the heathcheck function. -func Healthcheck(c echo.Context) error { - return c.String(http.StatusOK, "WORKING!\n") -} diff --git a/examples/go/example1/api/server.go b/examples/go/example1/api/server.go deleted file mode 100644 index 9d66a29b7..000000000 --- a/examples/go/example1/api/server.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// nolint -package main - -import ( - "github.com/labstack/echo" - "github.com/labstack/echo/middleware" - - "github.com/ZupIT/horusec/examples/go/example1/api/routes" -) - -func main() { - - echoInstance := echo.New() - echoInstance.HideBanner = true - - echoInstance.Use(middleware.Logger()) - echoInstance.Use(middleware.Recover()) - echoInstance.Use(middleware.RequestID()) - - // health routes - echoInstance.GET("/healthcheck", routes.Healthcheck) - - echoInstance.Logger.Fatal(echoInstance.Start(":8888")) - -} diff --git a/examples/go/example1/api/util/util.go b/examples/go/example1/api/util/util.go deleted file mode 100644 index 2f62562fe..000000000 --- a/examples/go/example1/api/util/util.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// nolint -package util - -import ( - "crypto/md5" - "fmt" - "io" - "strings" -) - -// HandleCmd will extract %GIT_REPO%, %GIT_BRANCH% and %INTERNAL_DEP_URL% from cmd and replace it with the proper repository URL. -func HandleCmd(repositoryURL, repositoryBranch, internalDepURL, cmd string) string { - if repositoryURL != "" && repositoryBranch != "" && cmd != "" { - replace1 := strings.Replace(cmd, "%GIT_REPO%", repositoryURL, -1) - replace2 := strings.Replace(replace1, "%GIT_BRANCH%", repositoryBranch, -1) - replace3 := strings.Replace(replace2, "%INTERNAL_DEP_URL%", internalDepURL, -1) - return replace3 - } - return "" -} - -// GetMD5 returns the MD5 of a string. -func GetMD5(s string) string { - h := md5.New() - io.WriteString(h, s) // #nohorus - md5Result := fmt.Sprintf("%x", h.Sum(nil)) - return md5Result -} - -// ReturnError will return a nil error. -func ReturnError() error { - return nil -} diff --git a/examples/go/example1/go.mod b/examples/go/example1/go.mod deleted file mode 100644 index e3bb4f5ea..000000000 --- a/examples/go/example1/go.mod +++ /dev/null @@ -1,131 +0,0 @@ -module github.com/ZupIT/horusec/example1 - -go 1.16 - -require ( - dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 // indirect - github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c // indirect - github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 // indirect - github.com/Microsoft/go-winio v0.4.15 // indirect - github.com/VividCortex/gohistogram v1.0.0 // indirect - github.com/ZupIT/horusec-engine v0.2.8 // indirect - github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 // indirect - github.com/antchfx/xpath v1.1.11 // indirect - github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a // indirect - github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef // indirect - github.com/auth0/go-jwt-middleware v1.0.0 // indirect - github.com/bmatcuk/doublestar v1.3.2 // indirect - github.com/bmatcuk/doublestar/v2 v2.0.4 // indirect - github.com/cenkalti/backoff v2.2.1+incompatible // indirect - github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec // indirect - github.com/containerd/containerd v1.4.1 // indirect - github.com/coreos/go-semver v0.3.0 // indirect - github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1 // indirect - github.com/dhui/dktest v0.3.2 // indirect - github.com/docker/distribution v2.7.1+incompatible // indirect - github.com/docker/docker v20.10.5+incompatible // indirect - github.com/docker/go-units v0.4.0 // indirect - github.com/edsrzf/mmap-go v1.0.0 // indirect - github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 // indirect - github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8 // indirect - github.com/fsnotify/fsnotify v1.4.9 // indirect - github.com/gin-gonic/gin v1.6.3 // indirect - github.com/go-asn1-ber/asn1-ber v1.5.1 // indirect - github.com/go-chi/chi v4.1.2+incompatible // indirect - github.com/go-chi/cors v1.1.1 // indirect - github.com/go-enry/go-enry/v2 v2.6.0 // indirect - github.com/go-logfmt/logfmt v0.5.0 // indirect - github.com/go-openapi/jsonpointer v0.19.5 // indirect - github.com/go-openapi/jsonreference v0.19.5 // indirect - github.com/go-openapi/swag v0.19.12 // indirect - github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect - github.com/go-resty/resty/v2 v2.3.0 // indirect - github.com/go-sql-driver/mysql v1.5.0 // indirect - github.com/gocarina/gocsv v0.0.0-20201208093247-67c824bc04d4 // indirect - github.com/gofrs/uuid v3.3.0+incompatible // indirect - github.com/gogo/protobuf v1.3.1 // indirect - github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe // indirect - github.com/golang/protobuf v1.4.3 // indirect - github.com/golang/snappy v0.0.1 // indirect - github.com/google/go-cmp v0.5.1 // indirect - github.com/google/renameio v0.1.0 // indirect - github.com/google/uuid v1.2.0 // indirect - github.com/gorilla/websocket v1.4.2 // indirect - github.com/graphql-go/graphql v0.7.9 // indirect - github.com/hashicorp/go-multierror v1.1.0 // indirect - github.com/hashicorp/go-version v1.2.0 // indirect - github.com/hudl/fargo v1.3.0 // indirect - github.com/iancoleman/strcase v0.1.3 // indirect - github.com/jackc/chunkreader/v2 v2.0.1 // indirect - github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgproto3 v1.1.0 // indirect - github.com/jackc/pgproto3/v2 v2.0.6 // indirect - github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect - github.com/jackc/puddle v1.1.3 // indirect - github.com/jpillora/backoff v1.0.0 // indirect - github.com/jstemmer/go-junit-report v0.9.1 // indirect - github.com/julienschmidt/httprouter v1.3.0 // indirect - github.com/kofalt/go-memoize v0.0.0-20200917044458-9b55a8d73e1c // indirect - github.com/konsorten/go-windows-terminal-sequences v1.0.3 // indirect - github.com/kr/pty v1.1.8 // indirect - github.com/labstack/echo v3.3.10+incompatible - github.com/labstack/gommon v0.3.0 // indirect - github.com/lib/pq v1.10.0 // indirect - github.com/lunixbochs/vtclean v1.0.0 // indirect - github.com/magiconair/properties v1.8.4 // indirect - github.com/manifoldco/promptui v0.8.0 // indirect - github.com/mattn/go-colorable v0.1.8 // indirect - github.com/mitchellh/mapstructure v1.3.3 // indirect - github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect - github.com/oklog/oklog v0.3.2 // indirect - github.com/oklog/run v1.0.0 // indirect - github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 // indirect - github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 // indirect - github.com/otiai10/copy v1.5.0 // indirect - github.com/pborman/uuid v1.2.0 // indirect - github.com/pelletier/go-toml v1.8.1 // indirect - github.com/performancecopilot/speed v3.0.0+incompatible // indirect - github.com/prometheus/client_golang v1.7.1 // indirect - github.com/prometheus/procfs v0.2.0 // indirect - github.com/rogpeppe/go-internal v1.3.0 // indirect - github.com/segmentio/ksuid v1.0.3 // indirect - github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc // indirect - github.com/sony/gobreaker v0.4.1 // indirect - github.com/spf13/afero v1.2.2 // indirect - github.com/spf13/cast v1.3.1 // indirect - github.com/spf13/cobra v1.0.0 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/streadway/amqp v1.0.0 // indirect - github.com/stretchr/objx v0.3.0 // indirect - github.com/stretchr/testify v1.7.0 // indirect - github.com/urfave/cli/v2 v2.3.0 // indirect - go.uber.org/atomic v1.6.0 // indirect - go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee // indirect - golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 // indirect - golang.org/x/image v0.0.0-20190802002840-cff245a6509b // indirect - golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 // indirect - golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 // indirect - golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d // indirect - golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 // indirect - golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e // indirect - golang.org/x/text v0.3.4 // indirect - golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect - google.golang.org/appengine v1.6.6 // indirect - google.golang.org/genproto v0.0.0-20201106154455-f9bfe239b0ba // indirect - google.golang.org/grpc v1.36.0 // indirect - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.1 // indirect - gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect - gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect - gopkg.in/gcfg.v1 v1.2.3 // indirect - gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df // indirect - gopkg.in/ini.v1 v1.62.0 // indirect - gopkg.in/ldap.v2 v2.5.1 // indirect - gopkg.in/warnings.v0 v0.1.2 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - gorm.io/driver/sqlite v1.1.4 // indirect - gorm.io/gorm v1.20.12 // indirect - sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 // indirect -) diff --git a/examples/go/example1/go.sum b/examples/go/example1/go.sum deleted file mode 100644 index dc5b3098a..000000000 --- a/examples/go/example1/go.sum +++ /dev/null @@ -1,1212 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.28.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= -cloud.google.com/go v0.40.0/go.mod h1:Tk58MuI9rbLMKlAjeO/bDnteAx7tX2gJIXw4T5Jwlro= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.63.0/go.mod h1:GmezbQc7T2snqkEXWfZ0sy0VfkB/ivI2DdtJL2DEmlg= -cloud.google.com/go v0.64.0/go.mod h1:xfORb36jGvE+6EexW71nMEtL025s3x6xvuYUKM4JLv4= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/spanner v1.9.0/go.mod h1:xvlEn0NZ5v1iJPYsBnUVRDNvccDxsBTEi16pJRKQVws= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -contrib.go.opencensus.io/exporter/stackdriver v0.6.0/go.mod h1:QeFzMJDAw8TXt5+aRaSuE8l5BwaMIOIlaVkBOPRuMuw= -dmitri.shuralyov.com/go/generated v0.0.0-20170818220700-b1254a446363/go.mod h1:WG7q7swWsS2f9PYpt5DoEP/EBYWx8We5UoRltn9vJl8= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= -git.apache.org/thrift.git v0.0.0-20180924222215-a9235805469b/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/ClickHouse/clickhouse-go v1.3.12/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= -github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= -github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= -github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= -github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Microsoft/go-winio v0.4.15/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= -github.com/Nerzal/gocloak/v7 v7.5.0/go.mod h1:tJ0yV6jds2dm1a5eYW7km/bt+2F3mqlU0e8Xis+diDQ= -github.com/Nerzal/gocloak/v7 v7.11.0/go.mod h1:8fu/dbbIRa1FmLEAOVReZ8PKfbnsl2DwEk6U0giK3KI= -github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= -github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/ZupIT/horusec v1.4.2/go.mod h1:0c927VemkLRu5snhsfu/qt7yb7CZB4dPYVOjHGmnEU0= -github.com/ZupIT/horusec v1.9.3 h1:PHNURTgfgmhIwJdqDCcy3Y83EE6ZrAyqrhDbS6VO2Lg= -github.com/ZupIT/horusec v1.9.3/go.mod h1:o4jsrSkdCPQPBJsCMmLC/RuSketAPS1ouh4h74GR4nQ= -github.com/ZupIT/horusec-engine v0.2.8/go.mod h1:YUvzG1NJ5BXQ/vKJv2i4KbiwF2z5vHwcCVvjtf4fIkE= -github.com/ZupIT/horusec-engine v0.3.4/go.mod h1:DzWhLavXcxKY8BzC8ELi2W6L8M+RXILCJU1+HZfzRss= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= -github.com/antchfx/xmlquery v1.2.4/go.mod h1:KQQuESaxSlqugE2ZBcM/qn+ebIpt+d+4Xx7YcSGAIrM= -github.com/antchfx/xmlquery v1.3.3/go.mod h1:64w0Xesg2sTaawIdNqMB+7qaW/bSqkQm+ssPaCMWNnc= -github.com/antchfx/xpath v1.1.6/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= -github.com/antchfx/xpath v1.1.10/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk= -github.com/antchfx/xpath v1.1.11/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= -github.com/apache/arrow/go/arrow v0.0.0-20200601151325-b2287a20f230/go.mod h1:QNYViu/X0HXDHw7m3KXzWSVXIbfUvJqBFe6Gj8/pYA0= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/auth0/go-jwt-middleware v0.0.0-20201030150249-d783b5c46b39/go.mod h1:mF0ip7kTEFtnhBJbd/gJe62US3jykNN+dcZoZakJCCA= -github.com/auth0/go-jwt-middleware v1.0.0/go.mod h1:nX2S0GmCyl087kdNSSItfOvMYokq5PSTG1yGIP5Le4U= -github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-sdk-go v1.15.54/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= -github.com/aws/aws-sdk-go v1.17.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= -github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= -github.com/bketelsen/crypt v0.0.2/go.mod h1:QoWTRmAOKpT3wAaYuPKutmL1eJqFHPUTt8EzaKE8zLc= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/bmatcuk/doublestar v1.3.2/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= -github.com/bmatcuk/doublestar/v2 v2.0.3/go.mod h1:QMmcs3H2AUQICWhfzLXz+IYln8lRQmTZRptLie8RgRw= -github.com/bmatcuk/doublestar/v2 v2.0.4/go.mod h1:QMmcs3H2AUQICWhfzLXz+IYln8lRQmTZRptLie8RgRw= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= -github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= -github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= -github.com/cockroachdb/cockroach-go v0.0.0-20190925194419-606b3d062051/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= -github.com/containerd/containerd v1.3.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8= -github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f/go.mod h1:8S58EK26zhXSxzv7NQFpnliaOQsmDUxvoQO3rt154Vg= -github.com/cznic/golex v0.0.0-20170803123110-4ab7c5e190e4/go.mod h1:+bmmJDNmKlhWNG+gwWCkaBoTy39Fs+bzRxVBzoTQbIc= -github.com/cznic/internal v0.0.0-20180608152220-f44710a21d00/go.mod h1:olo7eAdKwJdXxb55TKGLiJ6xt1H0/tiiRCWKVLmtjY4= -github.com/cznic/lldb v1.1.0/go.mod h1:FIZVUmYUVhPwRiPzL8nD/mpFcJ/G7SSXjjXYG4uRI3A= -github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM= -github.com/cznic/ql v1.2.0/go.mod h1:FbpzhyZrqr0PVlK6ury+PoW3T0ODUV22OeWIxcaOrSE= -github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65/go.mod h1:q2w6Bg5jeox1B+QkJ6Wp/+Vn0G/bo3f1uY7Fn3vivIQ= -github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186/go.mod h1:AHHPPPXTw0h6pVabbcbyGRK1DckRn7r/STdZEeIDzZc= -github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc/go.mod h1:Y1SNZ4dRUOKXshKUbwUapqNncRrho4mkjQebgEHZLj8= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= -github.com/denisenkom/go-mssqldb v0.0.0-20200620013148-b91950f658ec/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= -github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1/go.mod h1:+hnT3ywWDTAFrW5aE+u2Sa/wT555ZqwoCS+pk3p6ry4= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dhui/dktest v0.3.0/go.mod h1:cyzIUfGsBEbZ6BT7tnXqAShHSXCZhSNmFl70sZ7c1yc= -github.com/dhui/dktest v0.3.2/go.mod h1:l1/ib23a/CmxAe7yixtrYPc8Iy90Zy2udyaHINM5p58= -github.com/dhui/dktest v0.3.3/go.mod h1:EML9sP4sqJELHn4jV7B0TY8oF6077nk83/tz7M56jcQ= -github.com/docker/distribution v2.7.0+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v0.7.3-0.20190103212154-2b7e084dc98b/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v0.7.3-0.20190108045446-77df18c24acf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.4.2-0.20200213202729-31a86c4ab209/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v1.13.1/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsouza/fake-gcs-server v1.3.0/go.mod h1:Lq+43m2znsXfDKHnQMfdA0HpYYAEJsfizsbpk5k3TLo= -github.com/fsouza/fake-gcs-server v1.8.0/go.mod h1:Jkl6cfmIkfkaUgfI0sXCtOVgLZ8ZhyXW1sf63RTh/0w= -github.com/fsouza/fake-gcs-server v1.17.0/go.mod h1:D1rTE4YCyHFNa99oyJJ5HyclvN/0uQR+pM/VdlL83bw= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/gzip v0.0.1/go.mod h1:fGBJBCdt6qCZuCAOwWuFhBB4OOq9EFqlo5dEaFhhu5w= -github.com/gin-contrib/sse v0.0.0-20170109093832-22d885f9ecc7/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.3.0/go.mod h1:7cKuhb5qV2ggCFctp2fJQ+ErvciLZrIeoOSOm6mUr7Y= -github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/go-asn1-ber/asn1-ber v1.5.0/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= -github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= -github.com/go-chi/chi v4.0.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= -github.com/go-chi/chi v4.1.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= -github.com/go-chi/cors v1.1.1/go.mod h1:K2Yje0VW/SJzxiyMYu6iPQYa7hMjQX2i/F491VChg1I= -github.com/go-enry/go-enry/v2 v2.5.2/go.mod h1:GVzIiAytiS5uT/QiuakK7TF1u4xDab87Y8V5EJRpsIQ= -github.com/go-enry/go-enry/v2 v2.6.0/go.mod h1:GVzIiAytiS5uT/QiuakK7TF1u4xDab87Y8V5EJRpsIQ= -github.com/go-enry/go-oniguruma v1.2.1/go.mod h1:bWDhYP+S6xZQgiRL7wlTScFYBe023B6ilRZbCAD5Hf4= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-ini/ini v1.39.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= -github.com/go-ldap/ldap/v3 v3.2.0/go.mod h1:dtLsnBXnSLIsMRbCBuRpHflCGaYzZ5jn+x1q7XqMTKU= -github.com/go-ldap/ldap/v3 v3.2.4/go.mod h1:iYS1MdmrmceOJ1QOTnRXrIs7i3kloqtmGQjRvjKpyMg= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= -github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= -github.com/go-openapi/jsonreference v0.19.4/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= -github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= -github.com/go-openapi/spec v0.19.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= -github.com/go-openapi/spec v0.19.9/go.mod h1:vqK/dIdLGCosfvYsQV3WfC7N3TiZSnGY2RZKoFK7X28= -github.com/go-openapi/spec v0.19.12/go.mod h1:gwrgJS15eCUgjLpMjBJmbZezCsw88LmgeEip0M63doA= -github.com/go-openapi/spec v0.19.14/go.mod h1:gwrgJS15eCUgjLpMjBJmbZezCsw88LmgeEip0M63doA= -github.com/go-openapi/spec v0.20.0/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= -github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.11/go.mod h1:Uc0gKkdR+ojzsEpjh39QChyu92vPgIr72POcgHMAgSY= -github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M= -github.com/go-ozzo/ozzo-validation/v4 v4.3.0/go.mod h1:2NKgrcHl3z6cJs+3Oo940FPRiTzuqKbvfrL2RxCj6Ew= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-resty/resty/v2 v2.3.0/go.mod h1:UpN9CgLZNsv4e9XG50UU8xdI0F43UQ4HmxLBDwaroHU= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM= -github.com/gocarina/gocsv v0.0.0-20201103164230-b291445e0dd2/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI= -github.com/gocarina/gocsv v0.0.0-20201208093247-67c824bc04d4/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI= -github.com/gocql/gocql v0.0.0-20181124151448-70385f88b28b/go.mod h1:4Fw1eo5iaEhDUs8XyuhSVCVy52Jq3L+/3GJgYkwc+/0= -github.com/gocql/gocql v0.0.0-20190301043612-f6df8288f9b4/go.mod h1:4Fw1eo5iaEhDUs8XyuhSVCVy52Jq3L+/3GJgYkwc+/0= -github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/golang-migrate/migrate/v4 v4.2.5/go.mod h1:zt+104di20bTWX9M3cCcERBkS/6mncciH5sAjcn6kBU= -github.com/golang-migrate/migrate/v4 v4.13.0/go.mod h1:RUEXGkgYXTOdBY9Rbs9izc/SOalUK+dDi7YphFV/CUI= -github.com/golang-migrate/migrate/v4 v4.14.1/go.mod h1:l7Ks0Au6fYHuUIxUhQ0rcVX1uLlJg54C/VvW7tvxSz0= -github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/protobuf v1.0.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gopherjs/gopherjs v0.0.0-20181004151105-1babbf986f6f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gordonklaus/ineffassign v0.0.0-20201107091007-3b93a8888063/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/graphql-go/graphql v0.7.9/go.mod h1:k6yrAYQaSP59DC5UVxbgxESlmVyojThKdORUqGDGmrI= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/iancoleman/strcase v0.1.2/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= -github.com/iancoleman/strcase v0.1.3/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= -github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= -github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= -github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= -github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= -github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= -github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= -github.com/jackc/pgconn v1.3.2/go.mod h1:LvCquS3HbBKwgl7KbX9KyqEIumJAbm1UMcTvGaIf3bM= -github.com/jackc/pgconn v1.4.0/go.mod h1:Y2O3ZDF0q4mMacyWV3AstPJpeHXWGEetiFttmq5lahk= -github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= -github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= -github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= -github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= -github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= -github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= -github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= -github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= -github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= -github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= -github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= -github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= -github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= -github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= -github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= -github.com/jackc/pgtype v1.2.0/go.mod h1:5m2OfMh1wTK7x+Fk952IDmI4nw3nPrvtQdM0ZT4WpC0= -github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkALtxZMCH411K+tKzNpwzCKU+AnPzBKZ+I+Po= -github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ= -github.com/jackc/pgtype v1.6.2/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig= -github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= -github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= -github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= -github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= -github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXgo+kA= -github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o= -github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg= -github.com/jackc/pgx/v4 v4.10.1/go.mod h1:QlrWebbs3kqEZPHCTGyxecvzG6tvIsYu+A5b1raylkA= -github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jinzhu/gorm v1.9.2/go.mod h1:Vla75njaFJ8clLU1W44h34PjIkijhjHIYnZxMqCdxqo= -github.com/jinzhu/gorm v1.9.16/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs= -github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a/go.mod h1:UJSiEoRfvx3hP73CvoARgeLjaIOjybY9vj8PUPPFGeU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= -github.com/k0kubun/pp v2.3.0+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3tgzSScAn6HmfYukg= -github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kofalt/go-memoize v0.0.0-20200917044458-9b55a8d73e1c/go.mod h1:IvB2BCBCdgZFN9ZSgInoUlL1sAu0Xbvqfd7D+qqzTeo= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kshvakov/clickhouse v1.3.4/go.mod h1:DMzX7FxRymoNkVgizH0DWAL8Cur7wHLgx3MUnGwJqpE= -github.com/ktrysmt/go-bitbucket v0.6.4/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4= -github.com/labstack/echo v3.3.10+incompatible h1:pGRcYk231ExFAyoAjAfD85kQzRJCRI8bbnE7CX5OEgg= -github.com/labstack/echo v3.3.10+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s= -github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0= -github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= -github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/lunixbochs/vtclean v0.0.0-20180621232353-2d01aacdc34a/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= -github.com/magefile/mage v1.10.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.4/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEXGwov2nIKuGQ= -github.com/markbates/pkger v0.15.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-sqlite3 v1.14.0/go.mod h1:JIl7NbARA7phWnGvh0LKTyg7S9BA+6gx71ShQilpsus= -github.com/mattn/go-sqlite3 v1.14.4/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= -github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v0.0.0-20180220230111-00c29f56e238/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mongodb/mongo-go-driver v0.1.0/go.mod h1:NK/HWDIIZkaYsnYa0hmtP443T5ELr0KDecmIioVuuyU= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mutecomm/go-sqlcipher/v4 v4.4.0/go.mod h1:PyN04SaWalavxRGH9E8ZftG6Ju7rsPrGmQRjrEaVpiY= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/nakagami/firebirdsql v0.0.0-20190310045651-3c02a58cfed8/go.mod h1:86wM1zFnC6/uDBfZGNwB65O+pR2OFi5q/YQaEUid1qA= -github.com/nats-io/jwt v0.2.12/go.mod h1:mQxQ0uHQ9FhEVPIcTSKwx2lqZEpXWWcCgA7R6NrWvvY= -github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= -github.com/nats-io/nats.go v1.8.1/go.mod h1:BrFz9vVn0fU3AcH9Vn4Kd7W0NpJ651tD5omQ3M8LwxM= -github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= -github.com/nats-io/nkeys v0.0.2/go.mod h1:dab7URMsZm6Z/jp9Z5UGa87Uutgc2mVpXLC4B7TDb/4= -github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/neo4j/neo4j-go-driver v1.8.1-0.20200803113522-b626aa943eba/go.mod h1:ncO5VaFWh0Nrt+4KT4mOZboaczBZcLuHrG+/sUeP8gI= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= -github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= -github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= -github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= -github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= -github.com/otiai10/copy v1.5.0/go.mod h1:XWfuS3CrI0R6IE0FbgHsEazaXO8G0LpMp9o8tos0x4E= -github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= -github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= -github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= -github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= -github.com/otiai10/mint v1.3.2/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= -github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= -github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= -github.com/pkg/sftp v1.10.0/go.mod h1:NxmoDg/QLVWluQDUYG7XBZTLUpKeFa8e3aMf1BfjyHk= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= -github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20180920065004-418d78d0b9a7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= -github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/segmentio/ksuid v1.0.3/go.mod h1:/XUiZBD3kVx5SmUOl55voK5yeAbBNNIed+2O73XgrPE= -github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= -github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.0/go.mod h1:4GuYW9TZmE769R5STWrRakJc4UqQ3+QQ95fyz7ENv1A= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= -github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= -github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/smartystreets/gunit v1.4.2/go.mod h1:ZjM1ozSIMJlAz/ay4SG8PeKF00ckUp+zMHZXV9/bvak= -github.com/snowflakedb/glog v0.0.0-20180824191149-f5055e6f21ce/go.mod h1:EB/w24pR5VKI60ecFnKqXzxX3dOorz1rnVicQTQrGM0= -github.com/snowflakedb/gosnowflake v1.3.4/go.mod h1:NsRq2QeiMUuoNUJhp5Q6xGC4uBrsS9g6LwZVEkTWgsE= -github.com/snowflakedb/gosnowflake v1.3.5/go.mod h1:13Ky+lxzIm3VqNDZJdyvu9MCGy+WgRdYFdXp96UcLZU= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.4.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.6.3/go.mod h1:jUMtyi0/lB5yZH/FjyGAoH7IMNrIhlBf6pXZmbMDvzw= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14/go.mod h1:gxQT6pBGRuIGunNf/+tSOB5OHvguWi8Tbt82WOkf35E= -github.com/swaggo/gin-swagger v1.2.0/go.mod h1:qlH2+W7zXGZkczuL+r2nEBR2JTT+/lX05Nn6vPhc7OI= -github.com/swaggo/http-swagger v0.0.0-20200308142732-58ac5e232fba/go.mod h1:O1lAbCgAAX/KZ80LM/OXwtWFI/5TvZlwxSg8Cq08PV0= -github.com/swaggo/http-swagger v1.0.0/go.mod h1:cKIcshBU9yEAnfWv6ZzVKSsEf8h5ozxB8/zHQWyOQ/8= -github.com/swaggo/swag v1.5.1/go.mod h1:1Bl9F/ZBpVWh22nY0zmYyASPO1lI/zIwRDrpZU+tv8Y= -github.com/swaggo/swag v1.6.3/go.mod h1:wcc83tB4Mb2aNiL/HP4MFeQdpHUrca+Rp/DRNgWAUio= -github.com/swaggo/swag v1.6.9/go.mod h1:a0IpNeMfGidNOcm2TsqODUh9JHdHu3kxDA0UlGbBKjI= -github.com/swaggo/swag v1.7.0/go.mod h1:BdPIL73gvS9NBsdi7M1JOxLvlbfvNRaBP8m6WT6Aajo= -github.com/tidwall/pretty v0.0.0-20180105212114-65a9db5fad51/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.5-pre/go.mod h1:FwP/aQVg39TXzItUBMwnWp9T9gPQnXw4Poh4/oBQZ/0= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go/codec v0.0.0-20181022190402-e5e69e061d4f/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.5-pre/go.mod h1:tULtS6Gy1AE1yCENaw4Vb//HLH5njI2tfCQDUqRd8fI= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= -github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= -github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/xanzy/go-gitlab v0.15.0/go.mod h1:8zdQa/ri1dfn8eS3Ir1SyfvOKlw7WBJ8DVThkpGiXrs= -github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= -github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= -gitlab.com/nyarla/go-crypt v0.0.0-20160106005555-d9a5dc2b789b/go.mod h1:T3BPAOm2cqquPa0MKWeNkmOM5RQsRhkrwMWonFMN7fE= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= -go.mongodb.org/mongo-driver v1.1.0/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.opencensus.io v0.17.0/go.mod h1:mp1VrMQxhlqqDpKvH4UcQUa4YwlzNmymAjPrDdfxNpI= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.2.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.11.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200604202706-70a84ac30bf9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180925072008-f04abc6bdfa7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190225153610-fe579d43d832/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190611141213-3f473d35a33a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201029221708-28c70e62bb1d/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201207224615-747e23833adb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180224232135-f6cff0780e54/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180925112736-b09afc3d579e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181228144115-9a3f9b0469bb/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190108104531-7fbe1cd0fcc2/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201029080932-201ba4db2418/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201106081118-db71ae66460a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e h1:AyodaIpKjppX+cBfTASF2E1US3H2JFBj920Ot3rtDjs= -golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180924175601-e93be7f42f9f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190108222858-421f03a57a64/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200806022845-90696ccdc692/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200814230902-9882f1d1823d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200817023811-d00afeaade8f/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200818005847-188abfa75333/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20201105220310-78b158585360/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201120155355-20be4ac4bd6e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208062317-e652b2f42cc7/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.0.0-20180921000521-920bb1beccf7/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.0.0-20181015145326-625cd1887957/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/appengine v1.0.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20180924164928-221a8d4f7494/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190108161440-ae2f86662275/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200815001618-f69a88009b70/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200911024640-645f7a48b24f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201030142918-24207fddd1c3/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201106154455-f9bfe239b0ba/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.15.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= -google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.1/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= -gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= -gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= -gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= -gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.39.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/postgres v1.0.8/go.mod h1:4eOzrI1MUfm6ObJU/UcmbXyiHSs8jSwH95G5P5dxcAg= -gorm.io/driver/sqlite v1.1.4/go.mod h1:mJCeTFr7+crvS+TRnWc5Z3UvwxUN1BGBLMrf5LA9DYw= -gorm.io/gorm v1.20.7/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= -gorm.io/gorm v1.20.12/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= -gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -modernc.org/b v1.0.0/go.mod h1:uZWcZfRj1BpYzfN9JTerzlNUnnPsV9O2ZA8JsRcubNg= -modernc.org/db v1.0.0/go.mod h1:kYD/cO29L/29RM0hXYl4i3+Q5VojL31kTUVpVJDw0s8= -modernc.org/file v1.0.0/go.mod h1:uqEokAEn1u6e+J45e54dsEA/pw4o7zLrA2GwyntZzjw= -modernc.org/fileutil v1.0.0/go.mod h1:JHsWpkrk/CnVV1H/eGlFf85BEpfkrp56ro8nojIq9Q8= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/internal v1.0.0/go.mod h1:VUD/+JAkhCpvkUitlEOnhpVxCgsBI90oTzSCRcqQVSM= -modernc.org/lldb v1.0.0/go.mod h1:jcRvJGWfCGodDZz8BPwiKMJxGJngQ/5DrRapkQnLob8= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/ql v1.0.0/go.mod h1:xGVyrLIatPcO2C1JvI/Co8c0sr6y91HKFNy4pt9JXEY= -modernc.org/sortutil v1.1.0/go.mod h1:ZyL98OQHJgH9IEfN71VsamvJgrtRX9Dj2gX+vH86L1k= -modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/zappy v1.0.0/go.mod h1:hHe+oGahLVII/aTTyWK/b53VDHMAGCBYYeZ9sn83HC4= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/examples/go/example2/main.go b/examples/go/example2/main.go deleted file mode 100644 index ddf8c6e4f..000000000 --- a/examples/go/example2/main.go +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2020 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// nolint -package main - -import "fmt" - -func main() { - printPwd() - connectWitDatabase() -} - -func printPwd() { - password := "password" - - print("This is an password" + password) -} - -func connectWitDatabase() { - URI := fmt.Sprint("postgresql://root:root@postgresql:5432/horusecDB?sslmode=disable") - print(URI) -} diff --git a/examples/hcl/example1/main.tf b/examples/hcl/example1/main.tf deleted file mode 100644 index 4e30adb0a..000000000 --- a/examples/hcl/example1/main.tf +++ /dev/null @@ -1,20 +0,0 @@ - -resource "aws_security_group_rule" "my-rule" { - type = "ingress" - cidr_blocks = ["0.0.0.0/0"] -} - -resource "aws_alb_listener" "my-alb-listener"{ - port = "80" - protocol = "HTTP" -} - -resource "aws_db_security_group" "my-group" { - -} - -resource "azurerm_managed_disk" "source" { - encryption_settings { - enabled = false - } -} diff --git a/examples/horusec-config.json b/examples/horusec-config.json deleted file mode 100644 index c950943e5..000000000 --- a/examples/horusec-config.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "horusecCliCertInsecureSkipVerify": false, - "horusecCliCertPath": "", - "horusecCliContainerBindProjectPath": "", - "horusecCliCustomImages": { - "c": "", - "csharp": "", - "elixir": "", - "generic": "", - "go": "", - "hcl": "", - "javascript": "", - "leaks": "", - "php": "", - "python": "", - "ruby": "", - "shell": "" - }, - "horusecCliCustomRulesPath": "", - "horusecCliDisableDocker": false, - "horusecCliEnableCommitAuthor": false, - "horusecCliEnableGitHistoryAnalysis": false, - "horusecCliEnableInformationSeverity": false, - "horusecCliFalsePositiveHashes": [], - "horusecCliFilesOrPathsToIgnore": [ - "*tmp*", - "**/.vscode/**" - ], - "horusecCliHeaders": {}, - "horusecCliHorusecApiUri": "http://0.0.0.0:8000", - "horusecCliJsonOutputFilepath": "", - "horusecCliMonitorRetryInSeconds": 15, - "horusecCliPrintOutputType": "text", - "horusecCliProjectPath": "", - "horusecCliRepositoryAuthorization": "00000000-0000-0000-0000-000000000000", - "horusecCliRepositoryName": "examples", - "horusecCliReturnErrorIfFoundVulnerability": false, - "horusecCliRiskAcceptHashes": [], - "horusecCliSeveritiesToIgnore": [ - "INFO" - ], - "horusecCliShowVulnerabilitiesTypes": [ - "Vulnerability" - ], - "horusecCliTimeoutInSecondsAnalysis": 1000, - "horusecCliTimeoutInSecondsRequest": 300, - "horusecCliToolsConfig": { - "Bandit": { - "istoignore": false - }, - "Brakeman": { - "istoignore": false - }, - "BundlerAudit": { - "istoignore": false - }, - "Checkov": { - "istoignore": false - }, - "Flawfinder": { - "istoignore": false - }, - "GitLeaks": { - "istoignore": false - }, - "GoSec": { - "istoignore": false - }, - "HorusecEngine": { - "istoignore": false - }, - "MixAudit": { - "istoignore": false - }, - "NpmAudit": { - "istoignore": false - }, - "PhpCS": { - "istoignore": false - }, - "Safety": { - "istoignore": false - }, - "SecurityCodeScan": { - "istoignore": false - }, - "Semgrep": { - "istoignore": false - }, - "ShellCheck": { - "istoignore": false - }, - "Sobelow": { - "istoignore": false - }, - "TfSec": { - "istoignore": false - }, - "YarnAudit": { - "istoignore": false - } - }, - "horusecCliWorkDir": { - "go": [], - "csharp": [], - "ruby": ["./ruby/example1"], - "python": [], - "java": [], - "kotlin": [], - "javaScript": [], - "leaks": [], - "hcl": [], - "php": [], - "c": [], - "yaml": [], - "generic": [], - "elixir": [], - "shell": [], - "dart": [], - "nginx": [] - } -} \ No newline at end of file diff --git a/examples/java/example1/.classpath b/examples/java/example1/.classpath deleted file mode 100644 index 75b806fd7..000000000 --- a/examples/java/example1/.classpath +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/java/example1/.project b/examples/java/example1/.project deleted file mode 100644 index 700a32c79..000000000 --- a/examples/java/example1/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - my-app - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/examples/java/example1/pom.xml b/examples/java/example1/pom.xml deleted file mode 100644 index 46ef87c0f..000000000 --- a/examples/java/example1/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - 4.0.0 - com.mycompany.app - my-app - jar - 1.0-SNAPSHOT - my-app - http://maven.apache.org - - - junit - junit - 3.8.1 - test - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 3.0.2 - - - - true - lib/ - com.mycompany.app.App - - - - - - - diff --git a/examples/java/example1/src/main/java/com/mycompany/app/App.java b/examples/java/example1/src/main/java/com/mycompany/app/App.java deleted file mode 100644 index 4b225407c..000000000 --- a/examples/java/example1/src/main/java/com/mycompany/app/App.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mycompany.app; -import java.util.Random; - -/** - * Hello world! - * - */ -public class App -{ - public static void main( String[] args ) - { - Random rand = new Random(); - System.out.println(rand.nextInt(50)); - System.out.println( "Hello World!" ); - } -} diff --git a/examples/java/example1/src/test/java/com/mycompany/app/AppTest.java b/examples/java/example1/src/test/java/com/mycompany/app/AppTest.java deleted file mode 100644 index 335599003..000000000 --- a/examples/java/example1/src/test/java/com/mycompany/app/AppTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.mycompany.app; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit test for simple App. - */ -public class AppTest - extends TestCase -{ - /** - * Create the test case - * - * @param testName name of the test case - */ - public AppTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( AppTest.class ); - } - - /** - * Rigourous Test :-) - */ - public void testApp() - { - assertTrue( true ); - } -} diff --git a/examples/javascript/example1/app.js b/examples/javascript/example1/app.js deleted file mode 100644 index a255ee8fe..000000000 --- a/examples/javascript/example1/app.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const express = require('express') - -const app = express() - -app.get('/', (req, res) => { - res.status(200).send({ - success: 'true', - message: 'horus\'s intentionally vulnerable API!', - }) - }); - -app.get('/healthcheck', (req, res) => { - res.status(200).send('WORKING') - }); - - const PORT = 8888; - - app.listen(PORT, () => { - console.log(`horus intentionally vulnerable test API is running on port: ${PORT}`) - }); \ No newline at end of file diff --git a/examples/javascript/example1/package-lock.json b/examples/javascript/example1/package-lock.json deleted file mode 100644 index 010c779bc..000000000 --- a/examples/javascript/example1/package-lock.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "name": "horus", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "accepts": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.0.0.tgz", - "integrity": "sha1-NgTHZVhsO5z3h3tpN829RYf5R9w=", - "requires": { - "mime": "~1.2.11", - "negotiator": "~0.3.0" - } - }, - "buffer-crc32": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz", - "integrity": "sha1-vj5TgvwCttYySVasGvmKqYsIU0w=" - }, - "cookie": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", - "integrity": "sha1-kOtGndzpBchm3mh+/EMTHYgB+dA=" - }, - "cookie-signature": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.3.tgz", - "integrity": "sha1-kc2ZfMUftkFZVzjGnNoCAyj1D/k=" - }, - "debug": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", - "integrity": "sha1-IP9NJvXkIstoobrLu2EDmtjBwTA=" - }, - "escape-html": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz", - "integrity": "sha1-GBoobq05ejmpKFfPsdQwUuNWv/A=" - }, - "express": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.0.0.tgz", - "integrity": "sha1-J03IKTPJ9XTMOKDOXqgXK+nGsJQ=", - "requires": { - "accepts": "1.0.0", - "buffer-crc32": "0.2.1", - "cookie": "0.1.0", - "cookie-signature": "1.0.3", - "debug": ">= 0.7.3 < 1", - "escape-html": "1.0.1", - "fresh": "0.2.2", - "merge-descriptors": "0.0.2", - "methods": "0.1.0", - "parseurl": "1.0.1", - "path-to-regexp": "0.1.2", - "qs": "0.6.6", - "range-parser": "1.0.0", - "send": "0.2.0", - "serve-static": "1.0.1", - "type-is": "1.0.0", - "utils-merge": "1.0.0" - } - }, - "fresh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz", - "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc=" - }, - "merge-descriptors": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz", - "integrity": "sha1-w2pSp4FDdRPFcnXzndnTF1FKyMc=" - }, - "methods": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz", - "integrity": "sha1-M11Cnu/SG3us8unJIqjSvRSjDk8=" - }, - "mime": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", - "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=" - }, - "negotiator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz", - "integrity": "sha1-cG1pLv7d9XTVfqn7GriaT6fuj2A=" - }, - "parseurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz", - "integrity": "sha1-Llfc5u/dN8NRhwEDCUTCK/OIt7Q=" - }, - "path-to-regexp": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.2.tgz", - "integrity": "sha1-mysVH5zDAYye6lDKlXKeBXgXErQ=" - }, - "qs": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", - "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=" - }, - "range-parser": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.0.tgz", - "integrity": "sha1-pLJkz+C+XONqvjdlrJwqJIdG28A=" - }, - "send": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.2.0.tgz", - "integrity": "sha1-Bnq/Rc/4v/spy9t0OXJbMjiKLFg=", - "requires": { - "debug": "*", - "fresh": "~0.2.1", - "mime": "~1.2.9", - "range-parser": "~1.0.0" - } - }, - "serve-static": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.0.1.tgz", - "integrity": "sha1-ENy/1Es+ApGhMfyatKslqfWnikI=", - "requires": { - "send": "0.1.4" - }, - "dependencies": { - "fresh": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz", - "integrity": "sha1-v9lALPPfEsSkwxDHn5mj3eE9NKc=" - }, - "range-parser": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz", - "integrity": "sha1-wEJ//vUcEKy6B4KkbJYC50T/Ygs=" - }, - "send": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/send/-/send-0.1.4.tgz", - "integrity": "sha1-vnDY0b4B3mGCGvE3gLUDRaT3Gr0=", - "requires": { - "debug": "*", - "fresh": "0.2.0", - "mime": "~1.2.9", - "range-parser": "0.0.4" - } - } - } - }, - "type-is": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.0.0.tgz", - "integrity": "sha1-T/Qk6XNJoe4ZELS/xIhZXs3EQ/w=", - "requires": { - "mime": "~1.2.11" - } - }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" - } - } -} diff --git a/examples/javascript/example1/package.json b/examples/javascript/example1/package.json deleted file mode 100644 index 16d43c847..000000000 --- a/examples/javascript/example1/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "horus", - "version": "1.0.0", - "description": "Intentionally Vulnerable horus test branch", - "main": "app.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ZupIT/horus.git" - }, - "author": "horus", - "license": "ISC", - "bugs": { - "url": "https://github.com/ZupIT/horus" - }, - "homepage": "https://github.com/ZupIT/horus#readme", - "dependencies": { - "express": "^4.0.0" - } -} diff --git a/examples/javascript/example2/app.js b/examples/javascript/example2/app.js deleted file mode 100644 index 8821f7d3a..000000000 --- a/examples/javascript/example2/app.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const express = require('express') - -const app = express() - -app.get('/', (req, res) => { - res.status(200).send({ - success: 'true', - message: 'horus\'s intentionally vulnerable API!', - }) - }); - -app.get('/any/path', (req, res) => { - let url = req.param('url'); - if (url) { - res.redirect(url); - } -}); - -app.get('/healthcheck', (req, res) => { - res.status(200).send('WORKING') - }); - - const PORT = 8888; - - app.listen(PORT, () => { - console.log(`horus intentionally vulnerable test API is running on port: ${PORT}`) - }); \ No newline at end of file diff --git a/examples/javascript/example2/package.json b/examples/javascript/example2/package.json deleted file mode 100644 index 22ad904f1..000000000 --- a/examples/javascript/example2/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "horus", - "version": "1.0.0", - "description": "Intentionally Vulnerable horus test branch", - "main": "app.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ZupIT/horus.git" - }, - "author": "horus", - "license": "ISC", - "bugs": { - "url": "https://github.com/ZupIT/horus" - }, - "homepage": "https://github.com/ZupIT/horus#readme", - "dependencies": { - "express": "4.0.0" - } -} diff --git a/examples/javascript/example2/yarn.lock b/examples/javascript/example2/yarn.lock deleted file mode 100644 index be545c461..000000000 --- a/examples/javascript/example2/yarn.lock +++ /dev/null @@ -1,175 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -accepts@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.0.0.tgz#3604c765586c3b9cf7877b6937cdbd4587f947dc" - integrity sha1-NgTHZVhsO5z3h3tpN829RYf5R9w= - dependencies: - mime "~1.2.11" - negotiator "~0.3.0" - -buffer-crc32@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.1.tgz#be3e5382fc02b6d6324956ac1af98aa98b08534c" - integrity sha1-vj5TgvwCttYySVasGvmKqYsIU0w= - -cookie-signature@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.3.tgz#91cd997cc51fb641595738c69cda020328f50ff9" - integrity sha1-kc2ZfMUftkFZVzjGnNoCAyj1D/k= - -cookie@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.1.0.tgz#90eb469ddce905c866de687efc43131d8801f9d0" - integrity sha1-kOtGndzpBchm3mh+/EMTHYgB+dA= - -debug@*: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -"debug@>= 0.7.3 < 1": - version "0.8.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.8.1.tgz#20ff4d26f5e422cb68a1bacbbb61039ad8c1c130" - integrity sha1-IP9NJvXkIstoobrLu2EDmtjBwTA= - -escape-html@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.1.tgz#181a286ead397a39a92857cfb1d43052e356bff0" - integrity sha1-GBoobq05ejmpKFfPsdQwUuNWv/A= - -express@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.0.0.tgz#274dc82933c9f574cc38a0ce5ea8172be9c6b094" - integrity sha1-J03IKTPJ9XTMOKDOXqgXK+nGsJQ= - dependencies: - accepts "1.0.0" - buffer-crc32 "0.2.1" - cookie "0.1.0" - cookie-signature "1.0.3" - debug ">= 0.7.3 < 1" - escape-html "1.0.1" - fresh "0.2.2" - merge-descriptors "0.0.2" - methods "0.1.0" - parseurl "1.0.1" - path-to-regexp "0.1.2" - qs "0.6.6" - range-parser "1.0.0" - send "0.2.0" - serve-static "1.0.1" - type-is "1.0.0" - utils-merge "1.0.0" - -fresh@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.2.0.tgz#bfd9402cf3df12c4a4c310c79f99a3dde13d34a7" - integrity sha1-v9lALPPfEsSkwxDHn5mj3eE9NKc= - -fresh@0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.2.2.tgz#9731dcf5678c7faeb44fb903c4f72df55187fa77" - integrity sha1-lzHc9WeMf660T7kDxPct9VGH+nc= - -fresh@~0.2.1: - version "0.2.4" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.2.4.tgz#3582499206c9723714190edd74b4604feb4a614c" - integrity sha1-NYJJkgbJcjcUGQ7ddLRgT+tKYUw= - -merge-descriptors@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-0.0.2.tgz#c36a52a781437513c57275f39dd9d317514ac8c7" - integrity sha1-w2pSp4FDdRPFcnXzndnTF1FKyMc= - -methods@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/methods/-/methods-0.1.0.tgz#335d429eefd21b7bacf2e9c922a8d2bd14a30e4f" - integrity sha1-M11Cnu/SG3us8unJIqjSvRSjDk8= - -mime@~1.2.11, mime@~1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" - integrity sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA= - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -negotiator@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.3.0.tgz#706d692efeddf574d57ea9fb1ab89a4fa7ee8f60" - integrity sha1-cG1pLv7d9XTVfqn7GriaT6fuj2A= - -parseurl@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.0.1.tgz#2e57dce6efdd37c3518701030944c22bf388b7b4" - integrity sha1-Llfc5u/dN8NRhwEDCUTCK/OIt7Q= - -path-to-regexp@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.2.tgz#9b2b151f9cc3018c9eea50ca95729e05781712b4" - integrity sha1-mysVH5zDAYye6lDKlXKeBXgXErQ= - -qs@0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107" - integrity sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc= - -range-parser@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-0.0.4.tgz#c0427ffef51c10acba0782a46c9602e744ff620b" - integrity sha1-wEJ//vUcEKy6B4KkbJYC50T/Ygs= - -range-parser@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.0.tgz#a4b264cfe0be5ce36abe3765ac9c2a248746dbc0" - integrity sha1-pLJkz+C+XONqvjdlrJwqJIdG28A= - -range-parser@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175" - integrity sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU= - -send@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/send/-/send-0.1.4.tgz#be70d8d1be01de61821af13780b50345a4f71abd" - integrity sha1-vnDY0b4B3mGCGvE3gLUDRaT3Gr0= - dependencies: - debug "*" - fresh "0.2.0" - mime "~1.2.9" - range-parser "0.0.4" - -send@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.2.0.tgz#067abf45cff8bffb29cbdb7439725b32388a2c58" - integrity sha1-Bnq/Rc/4v/spy9t0OXJbMjiKLFg= - dependencies: - debug "*" - fresh "~0.2.1" - mime "~1.2.9" - range-parser "~1.0.0" - -serve-static@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.0.1.tgz#10dcbfd44b3e0291a131fc9ab4ab25a9f5a78a42" - integrity sha1-ENy/1Es+ApGhMfyatKslqfWnikI= - dependencies: - send "0.1.4" - -type-is@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.0.0.tgz#4ff424e97349a1ee1910b4bfc488595ecdc443fc" - integrity sha1-T/Qk6XNJoe4ZELS/xIhZXs3EQ/w= - dependencies: - mime "~1.2.11" - -utils-merge@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" - integrity sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg= diff --git a/examples/javascript/example3/app.js b/examples/javascript/example3/app.js deleted file mode 100644 index 0c625bf07..000000000 --- a/examples/javascript/example3/app.js +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Copyright 2020 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var express = require('express'); -var session = require('express-session') -var engine = require('ejs-locals'); -var path = require('path'); -var favicon = require('serve-favicon'); -var fs = require("fs"); -var logger = require('morgan'); -var cookieParser = require('cookie-parser'); -var bodyParser = require('body-parser'); -var log4js = require("log4js"); - -var init_db = require('./model/init_db'); -var login = require('./routes/login'); -var products = require('./routes/products'); - -var app = express(); - -// config second logger -log4js.loadAppender('file'); -//log4js.addAppender(log4js.appenders.console()); -log4js.addAppender(log4js.appenders.file('app-custom.log'), 'vnode'); - -var logger4js = log4js.getLogger('vnode'); -logger4js.setLevel('INFO'); - -var accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log')) - -/* - * Template engine - */ -app.engine('ejs', engine); - -app.set('views', path.join(__dirname, 'views')); -app.set('view engine', 'ejs'); - -// uncomment after placing your favicon in /public -app.use(logger('combined', {stream: accessLogStream})); -app.use(bodyParser()); -app.use(bodyParser.json()); -app.use(bodyParser.urlencoded({ extended: true })); -app.use(cookieParser()); -app.use(express.static(path.join(__dirname, 'public'))); -app.use(session({ - secret: 'ñasddfilhpaf78h78032h780g780fg780asg780dsbovncubuyvqy', - cookie: { - secure: false, - maxAge: 99999999999 - } -})); - -/* - * Routes config - */ -app.use('', products); -app.use('', login); - - -// catch 404 and forward to error handler -app.use(function(req, res, next) { - var err = new Error('Not Found'); - err.status = 404; - next(err); -}); - -/* - * Debug functions and error handlers - */ -if (app.get('env') === 'development') { - app.use(function(err, req, res, next) { - res.status(err.status || 500); - res.render('error', { - message: err.message, - error: err - }); - }); -} - -// production error handler -// no stacktraces leaked to user -app.use(function(err, req, res, next) { - res.status(err.status || 500); - res.render('error', { - message: err.message, - error: {} - }); -}); - -/* - * Create database - */ -logger4js.info("Building database") -// logger.info(("Building database"); - -init_db(); - -module.exports = app; diff --git a/examples/javascript/example3/auth.js b/examples/javascript/example3/auth.js deleted file mode 100644 index 13b5fb112..000000000 --- a/examples/javascript/example3/auth.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright 2020 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var config = require("../config"), - pgp = require('pg-promise')(); - -function do_auth(username, password) { - var db = pgp(config.db.connectionString); - - var q = "SELECT * FROM users WHERE name = '" + username + "' AND password ='" + password + "';"; - - return db.one(q); -} - -module.exports = do_auth; \ No newline at end of file diff --git a/examples/javascript/example3/config.js b/examples/javascript/example3/config.js deleted file mode 100644 index 2868b4965..000000000 --- a/examples/javascript/example3/config.js +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright 2020 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var config_local = { - // Customer module configs - "db": { - "server": "postgres://postgres:postgres@127.0.0.1", - "database": "vulnerablenode" - } -} - -var config_devel = { - // Customer module configs - "db": { - "server": "postgres://postgres:postgres@10.211.55.70", - "database": "vulnerablenode" - } -} - -var config_docker = { - // Customer module configs - "db": { - "server": "postgres://postgres:postgres@postgres_db", - "database": "vulnerablenode" - } -} - -// Select correct config -var config = null; - -switch (process.env.STAGE){ - case "DOCKER": - config = config_docker; - break; - - case "LOCAL": - config = config_local; - break; - - case "DEVEL": - config = config_devel; - break; - - default: - config = config_devel; -} - -// Build connection string -config.db.connectionString = config.db.server + "/" + config.db.database - -module.exports = config; \ No newline at end of file diff --git a/examples/javascript/example3/dummy.js b/examples/javascript/example3/dummy.js deleted file mode 100644 index b0a2cfffa..000000000 --- a/examples/javascript/example3/dummy.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Copyright 2020 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// This file contains dummy information data - -var dummy_info = { - // Customer module configs - "users": [ - { - "username": "admin", - "password": "admin" - }, - { - "username": "roberto", - "password": "asdfpiuw981" - } - ], - - "products": [ - { - "name": "My public privacy", - "description": "Grant privacy in public to watch your favorite programs", - "price": parseInt(Math.random() * 100), - "image": "product_1.jpg" - }, - { - "name": "The USB rocket", - "description": "Be happy with your USB rocket. Functionality: none. Usability: none. The best choice!", - "price": parseInt(Math.random() * 100), - "image": "product_2.jpg" - }, - { - "name": "Walker watermelons", - "description": "Take a walk your watermelons and make it feel comfortable.", - "price": parseInt(Math.random() * 100), - "image": "product_3.jpg" - }, - { - "name": "Potty Putter", - "description": "The game for the avid golfers!", - "price": 20, - "image": "product_4.jpg" - }, - { - "name": "Phone Fingers", - "description": "Phone fingers work perfectly well with iPhone's touch screen and prevent fingerprints and smudges", - "price": 3, - "image": "product_5.jpg" - }, - { - "name": "Daddle", - "description": "Be the best father with Daddle: dad's saddle for horsing around.", - "price": parseInt(Math.random() * 100), - "image": "product_6.jpg" - }, - { - "name": "HD Vision", - "description": "Reality is not enough for you? Improve your live with the HD vision glasses.", - "price": parseInt(Math.random() * 100), - "image": "product_7.jpg" - }, - { - "name": "Hangs free", - "description": "Say goodbye to the cumbersome cables with the authentic hands free.", - "price": parseInt(Math.random() * 100), - "image": "product_8.jpg" - } - ] -} - -module.exports = dummy_info; \ No newline at end of file diff --git a/examples/javascript/example3/init_db.js b/examples/javascript/example3/init_db.js deleted file mode 100644 index bfdbddb11..000000000 --- a/examples/javascript/example3/init_db.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Copyright 2020 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var config = require("../config"); -var dummy = require("../dummy"); -var pgp = require('pg-promise')(); - -/* - THIS FILE CREATES AND POPULATE THE DATABASE - */ - -function init_db() { - - // Create tables and dummy data - var db = pgp(config.db.connectionString); - - // Create init tables - db.one('CREATE TABLE users(name VARCHAR(100) PRIMARY KEY, password VARCHAR(50));') - .then(function () { - }) - .catch(function (err) { - - // Insert dummy users - var users = dummy.users; - for (var i = 0; i < users.length; i ++) { - var u = users[i]; - db.one('INSERT INTO users(name, password) values($1, $2)', [u.username, u.password]) - .then(function () { - // success; - }) - .catch(function (err) { - }); - } - - }); - - db.one('CREATE TABLE products(id INTEGER PRIMARY KEY, name VARCHAR(100) not null, description TEXT not null, price INTEGER, image VARCHAR(500))') - .then(function () { - - }) - .catch(function (err) { - - - // Insert dummy products - var products = dummy.products; - for (var i = 0; i < products.length; i ++) { - var p = products[i]; - db.one('INSERT INTO products(id, name, description, price, image) values($1, $2, $3, $4, $5)', [i, p.name, p.description, p.price, p.image]) - .then(function () { - // success; - }) - .catch(function (err) { - }); - } - - }); - - db.one('CREATE TABLE purchases(id SERIAL PRIMARY KEY, product_id INTEGER not null, product_name VARCHAR(100) not null, user_name VARCHAR(100), mail VARCHAR(100) not null, address VARCHAR(100) not null, phone VARCHAR(40) not null, ship_date VARCHAR(100) not null, price INTEGER not null)') - .then(function () { - - }) - .catch(function (err) { - }); - - -} - -module.exports = init_db; \ No newline at end of file diff --git a/examples/javascript/example3/products.js b/examples/javascript/example3/products.js deleted file mode 100644 index c24544c55..000000000 --- a/examples/javascript/example3/products.js +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Copyright 2020 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -var config = require("../config"), - pgp = require('pg-promise')(), - db = pgp(config.db.connectionString); - -function list_products() { - - var q = "SELECT * FROM products;"; - - return db.many(q); -} - -function getProduct(product_id) { - - var q = "SELECT * FROM products WHERE id = '" + product_id + "';"; - - return db.one(q); -} - -function search(query) { - - var q = "SELECT * FROM products WHERE name ILIKE '%" + query + "%' OR description ILIKE '%" + query + "%';"; - - return db.many(q); - -} - -function purchase(cart) { - - var q = "INSERT INTO purchases(mail, product_name, user_name, product_id, address, phone, ship_date, price) VALUES('" + - cart.mail + "', '" + - cart.product_name + "', '" + - cart.username + "', '" + - cart.product_id + "', '" + - cart.address + "', '" + - cart.ship_date + "', '" + - cart.phone + "', '" + - cart.price + - "');"; - - return db.one(q); - -} - -function get_purcharsed(username) { - - var q = "SELECT * FROM purchases WHERE user_name = '" + username + "';"; - - return db.many(q); - -} - -var actions = { - "list": list_products, - "getProduct": getProduct, - "search": search, - "purchase": purchase, - "getPurchased": get_purcharsed -} - -module.exports = actions; diff --git a/examples/javascript/example4/test.js b/examples/javascript/example4/test.js deleted file mode 100644 index c0e9f00fe..000000000 --- a/examples/javascript/example4/test.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const text = "This line has no vulnerabilities"; -alert("This line is vulnerable"); \ No newline at end of file diff --git a/examples/kotlin/example1/pom.xml b/examples/kotlin/example1/pom.xml deleted file mode 100644 index 8188b80a5..000000000 --- a/examples/kotlin/example1/pom.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - 4.0.0 - - org.jetbrains.kotlin.examples - hello-world - 1.0-SNAPSHOT - - - 1.3.72 - 4.12 - hello.HelloKt - UTF-8 - - - - - org.jetbrains.kotlin - kotlin-stdlib - ${kotlin.version} - - - - junit - junit - ${junit.version} - test - - - - org.jetbrains.kotlin - kotlin-test-junit - ${kotlin.version} - test - - - - - ${project.basedir}/src/main/kotlin - ${project.basedir}/src/test/kotlin - - - - kotlin-maven-plugin - org.jetbrains.kotlin - ${kotlin.version} - - - - - compile - compile - - compile - - - - test-compile - test-compile - - test-compile - - - - - - org.apache.maven.plugins - maven-jar-plugin - 2.6 - - - - true - ${main.class} - - - - - - org.codehaus.mojo - exec-maven-plugin - 1.2.1 - - - test - - java - - - - - ${main.class} - - - - - com.github.spotbugs - spotbugs-maven-plugin - 4.0.0 - - - - com.github.spotbugs - spotbugs - 4.0.2 - - - - Max - Low - true - ${session.executionRootDirectory}/spotbugs-security-include.xml - ${session.executionRootDirectory}/spotbugs-security-exclude.xml - - - com.h3xstream.findsecbugs - findsecbugs-plugin - 1.9.0 - - - - - - - \ No newline at end of file diff --git a/examples/kotlin/example1/spotbugs-security-exclude.xml b/examples/kotlin/example1/spotbugs-security-exclude.xml deleted file mode 100644 index 253680559..000000000 --- a/examples/kotlin/example1/spotbugs-security-exclude.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/examples/kotlin/example1/spotbugs-security-include.xml b/examples/kotlin/example1/spotbugs-security-include.xml deleted file mode 100644 index 69e87f62a..000000000 --- a/examples/kotlin/example1/spotbugs-security-include.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/examples/kotlin/example1/src/main/kotlin/Hello.kt b/examples/kotlin/example1/src/main/kotlin/Hello.kt deleted file mode 100644 index df844a572..000000000 --- a/examples/kotlin/example1/src/main/kotlin/Hello.kt +++ /dev/null @@ -1,152 +0,0 @@ -package hello - -abstract class EqualsPasswordField { - - fun hardcodedLogin1(username: String, password: String): Boolean { - - if (username == "admin") { - println("OK") - } - if (username == "abc") { - println("OK") - } - - if (password == "@dm1n") { //!! - return true - } - - return validateDb(username, password) - } - - fun hardcodedLogin2(username: String, password: String): Boolean { - - return if ("adm1nL3ft" == password) { //!! - true - } else validateDb(username, password) - - } - - fun hardcodedLogin3(username: String, p1: String): Boolean { - - val password = p1 - return if ("adm1nL3ft!!!!" == password) { //!! (Not supported at the moment) - true - } else validateDb(username, password) - - } - - fun safeLogin1(username: String, password: String): Boolean { - - return if (password == "") { - true - } else validateDb(username, password) - - } - - fun safeLogin2(username: String, password: String): Boolean { - - return if ("" == password) { - false - } else validateDb(username, password) - - } - - fun safeLogin3(username: String, password: String): Boolean { - - return if (getPassword(username) == password) { - false - } else validateDb(username, password) - - } - - fun safeLogin4(username: String, password: String): Boolean { - - return if (password == getPassword(username)) { - false - } else validateDb(username, password) - - } - - abstract fun validateDb(username: String, password: String): Boolean - abstract fun getPassword(username: String): String -} - -fun hardcodedLogin1(username: String, password: String): Boolean { - - if (username == "admin") { - println("OK") - } - if (username == "abc") { - println("OK") - } - - if (password == "@dm1n") { //!! - return true - } - - return validateDb(username, password) -} - -fun hardcodedLogin2(username: String, password: String): Boolean { - - return if ("adm1nL3ft" == password) { //!! - true - } else validateDb(username, password) - -} - -fun hardcodedLogin3(username: String, p1: String): Boolean { - - val password = p1 - return if ("adm1nL3ft!!!!" == password) { //!! (Not supported at the moment) - true - } else validateDb(username, password) - -} - -fun safeLogin1(username: String, password: String): Boolean { - - return if (password == "") { - true - } else validateDb(username, password) - -} - -fun safeLogin2(username: String, password: String): Boolean { - - return if ("" == password) { - false - } else validateDb(username, password) - -} - -fun safeLogin3(username: String, password: String): Boolean { - - return if (getPassword(username) == password) { - false - } else validateDb(username, password) - -} - -fun safeLogin4(username: String, password: String): Boolean { - - return if (password == getPassword(username)) { - false - } else validateDb(username, password) - -} - -fun validateDb(username: String, password: String): Boolean { - return false -} - -fun getPassword(username: String): String { - throw IllegalStateException("Not implemented") -} - -fun main(args : Array) { - val password = "secret1234" - - println(password) -} - diff --git a/examples/kotlin/example1/src/test/kotlin/HelloTest.kt b/examples/kotlin/example1/src/test/kotlin/HelloTest.kt deleted file mode 100644 index dec3d397a..000000000 --- a/examples/kotlin/example1/src/test/kotlin/HelloTest.kt +++ /dev/null @@ -1,8 +0,0 @@ -package hello.tests - -import kotlin.test.assertEquals -import org.junit.Test - -class HelloTest { - -} diff --git a/examples/leaks/example1/deployments/certificates/ca-key.txt b/examples/leaks/example1/deployments/certificates/ca-key.txt deleted file mode 100644 index 22d06ef88..000000000 --- a/examples/leaks/example1/deployments/certificates/ca-key.txt +++ /dev/null @@ -1,54 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: AES-256-CBC,B39533912310C927A089A81035FAE212 - -0Qpl1uQruY47/nDLrKHSCod83ggSNVkOOemnW4VeVuTEVupeHGd28BugRrlCit22 -hbnz42LGxbYNAtpCc0CsjmQRAm3x/cQZ+/uHFu4zlCXOE0uOhVU0nOOvmYhzugyE -WALkEEoAv+N3f2QpfVns1QVpHams3QVth6WIy/fCiPATqr7gU8GGSEEeSGtBdQtI -NqRNbYBSDuojjgc8uzIQ+auFfI9EEEm8EDr3tPxlDXvzCN3Jmed98jZVGzHo5yXC -VYnhHP0GSQIQRiuOogg4ce3QM1YolshMeN3qdWZAwFxcJZMfjt+9Mjk2RhMPJ6kx -K8ccJxaIBhp08BrEC+lbWuYmVeWEsmv/ps7a+W4lzrdPrLHRO3lqjoiBUewUk7bO -yb8RnBOKrSLx7T3fWjgnRhxkRoDu6klL4c2vDJyR5I8ysqo1fJpXZ8qpSqTo4Ljx -YlzCu+J8b9GpkPFqojEd939yV2HMVlibSDah7PKAKCQG6tXrBNqQYCseHTjlDZJd -jGYcv1jGKFSygdzXNCYjaIw2ezC7IcYdfcsue1whk8U5Q/ipTAf3RO1WCkXrpZsm -21OKH81ajNDDmnljYoLZN0YiwxA7NV2XrldG2oqQt4XjObgNl0lyiGPwzI0dszHL -+EFD55StpAqIEjU8plY5WeQC8Gh844mGl5dWS15P+QOrVTFdMdo48g6NG6hf/RnD -GroKLOCQciDe10wKH0/H+jeiHf+jnhiDrlAWiMHfgiGEsWUvfwHVs1toe/kIWVRx -48l+mpm4gSFUQy8r0RJWDSE9a0Z8eN++HAuB9E7R1Cqk4TzgxpXtcGsNg6zVl9D9 -MKOflkTJ5RBPwsdKWCpK7JqJxnn2e272n0pC3ypXmCS712HfTaKlVygmI9v/QTqv -qdqw8r3OK5wFrFiMQFRj/V/WWNMm1Id8K8yF0giq6YoPiauDESdQhgVJtfd1pmtR -DJ2Bghh5WHu/PtzO3OGs48EG8to1Am+x9KUwyLVyjmt9BkmoCb/rLTcDcIIdVxtN -o9l2Fhms1UR23I1kkIL60xSmj4lK/mYQsHDmvH0GNC4Co7eu928/LYKyLbWc6Zj8 -CwtRHlU/5XlCcYzWr8r+TgyjLd1JMlCQarEO+1fCXMvUnLsqFkO49w8iJi+g51Er -L7ic1k03JXbD9VrkGF5Ri09X1olc4uHk+WTEobWJ+q/1C27V9d0yzvauAhRQjY5C -tvUi0/1MY7nMIYaHum/kCEACX6nLDWCHxmT2Ky8EreUyI9zN1oyTc5lxfpC/luHb -oNWO8tYPCZx3t4XjB1rLfvCAcp8kIGtC86QIlj4gb7iBSr6xHpFq9xs3PLjrYtQM -W/EvFpVla9FT2TChi3C1JS1GqSNggOvVyxTW8QEs5pZNSrek7+eUvlLXWY6+LaWi -b9NxkxuUB9k2fF9oKJkm9V9OPUN5J0+XQaeHALkiq5SDN+s8ehJZ7Dlt/UV5a46u -f/+4YIr3sfyP4jVVD9SzwIwOfKpT9QtpH8FJLbrUgiW1hd0+w6e6Ym2jS6z4Lyqi -SiD95V/ULmQ6YsoGoLhbiPrvYCvXDJVSHWzz/pJy73Y+trp8PeeEjsZjCk817fdv -X68CPToPOvskNjSLKWCY1Tb3lav40plD/chP2dot7NjEOo/0SMmVq8en2B0roMEF -V5sSkVl0cgGzgik2obpIcEfXCR1cnxU83NCJac0dSbAhGnl9N5lFDXaGZ0yjYo+Y -Slo1TCrZpQ1ZONXSwwyKxpFlgwQ3wRYu/eAOMh+bvqDQlHGHQh9TFjlb68oGwP/w -DebOYdfEU/dzA6dEXggaeRd9fw3Bqn2/ADtl0A21RCVIObMr/K89Nb1bEj3wtFaz -HK9hj/PvinMUNy/xK6xsE4x9cYYRWxjSuXx2oVvwrYIHz46U/b+YMXbVqz74/gOM -wGQRMZ2yQl3kFd99op624gXVe9igRhc1+5RiJfu6Iwxa/7AzWsBKiGOU4M7aFMKT -hLWN+DxJlY4hGI3IXnyrsCYv9E0+Z1B0phIi9339uDR0T7MhFjrM87ru1DD9VvY2 -Q+tHaEOioO4r7wo+zCsvknxGHmvwjeSfduWRFduLdopwVUPAKJoELqlrio+NXVzB -P3W0GGhPiRXjLcJrpmMNGD+jG1RT0tWoq0HV+Qy8v9iaXxERT+2CcmZ1+oWoPQ93 -BKOeWDqr0hZ+/MqUvwj1EQOGkVu+M9foPJh/Xo/lrHOVv700DLXqDh+9vLn3oR64 -SA7ikSn6fFdN2KbsYxKoZK+vtPQeXVi3x5er2vr/KtD2C6ukPqns98d2t/F+KwV/ -Q5E09OdkzkLobe6E3BrjXkzJ8bRtyKKYsVeE/FDP0r+g+lbSL+2k7Rmlf4jrLPDc -BoZDV3G8YYjeJ8Y08mfil7qXedKepIqt8V3vhoh18wmiOQh7KUSFfhY00qot54yv -61LC6iZ2SBXNZG2iU6z3epeVZj3ZV3d2l6qImhN03IjCRPVUefsj2ARkCT+Bfa6I -iqF320Pmc9US2IvySnmj1OBzp6Udf4qoMhGICMp2dltmFbZJiWOmcSvRDJlphyFZ -M3dNdHWN7NGndrtwM0bxTmEqE/eOx4r2RlcOt5cZcJI143By+O/fjD7AVqmi5z6T -fx+FPeVrne9675KulxUY+rKI8ZPyU2z8fX/3p+Z76U4d9DK2omkp84JOjyLjjp4f -2oSwOPBAVg0Kxbe6n+Fvdn6sY+1pl+IFq98W1SHWjZBGNSg0hXAPA3EiLL5tH6Ob -Gh6EnD2b+lxvgpj8nnwlnCfWuxy9/1EKt78t3kMd6Iai5qau0f7IGqcqpRp2xL4t -vw5H6I2toggIyeQZgZ7jguwbtuLHCMpH6OZrO1HcIIuABoHXMf+ERHwUGk0H+cgC -vxdQ5R9PBBhuyXD2mJ5gTj2fRzIXCtF+PiwOPjFDuys7ipkrvVlmt/KHOLv9ISB1 -TivKpDlXIGx0be6SIZpZv03nPXZFkqHJ87ULk3pxXAdMpgQCprwLY+i/SF7WlAs9 -PkF7R2ObPSCoeq/KzOVRGrfkLkb+YC7HoLqFeRZA71z55TDezyxTrq9rBPXNT1KU -lEN6tIo3T3N3GXTnSVP58Fqhp4GstWl/VKRdUHcRx4+NkgB7H4hicrEQ/LGCHTzT ------END RSA PRIVATE KEY----- diff --git a/examples/leaks/example1/deployments/certificates/ca.txt b/examples/leaks/example1/deployments/certificates/ca.txt deleted file mode 100644 index 307623275..000000000 --- a/examples/leaks/example1/deployments/certificates/ca.txt +++ /dev/null @@ -1,32 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFljCCA34CCQCk73CkiT6soTANBgkqhkiG9w0BAQsFADCBjDELMAkGA1UEBhMC -R0IxDzANBgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9uZG9uMRcwFQYDVQQKDA5F -eGFtcGxlQ29tcGFueTELMAkGA1UECwwCSVQxFDASBgNVBAMMC2V4YW1wbGUuY29t -MR8wHQYJKoZIhvcNAQkBFhB0ZXN0QGV4YW1wbGUuY29tMB4XDTE5MTEyNTIwMzg0 -N1oXDTIyMDUxMzIwMzg0N1owgYwxCzAJBgNVBAYTAkdCMQ8wDQYDVQQIDAZMb25k -b24xDzANBgNVBAcMBkxvbmRvbjEXMBUGA1UECgwORXhhbXBsZUNvbXBhbnkxCzAJ -BgNVBAsMAklUMRQwEgYDVQQDDAtleGFtcGxlLmNvbTEfMB0GCSqGSIb3DQEJARYQ -dGVzdEBleGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB -AN+29UBdcGarH6OoiRowYbcYT4gs9JFmdjnYk91MRRDqXhW2McT7CJTcv7QNhf37 -2nvztgkEcBXAgk/75ALOiemyZiCmRzmT+7qMz3UEjSjQIIJAoAMhIS94BXaKdjzS -edTQqgBurcJARgbk10ZJQqX2LmmOA+UCWOpufxvOYjPLkUzJr7evvAA0mFhADGnf -lGO1KmGlO3BNJUFqkohObF7REr6IRlmu3eDESfR6YF4n0MMSUvSi1yAylSkVAKRK -YA34YFDwSxL5tGQhi9z3+NDYF+1qztNTJBWiR7760wUyroD21QFCPwlvQLzSyJEl -m0+MzDrAsekEE4gWvmFyyS16T9dNzxQQREvmknJh4Ngw8Viq21fcmndeq+JDd83R -wnparHglSSTQ9+Ihh0ISjXth24Blqx4IaA4Qd6QehXeLUdWNGpqjCifXedsfODIx -VtT9UKNh3RU4o7iyprEZPwrPi4k6rsS9k+ffxR68phu4/oaFUMe8GhYdJCuZbSrK -wvYjdP+3l+VIgwu3a3CENcoaU3zlZRR9gLCRJ9Ky95udB9KWeBdyHa6hC+MymTps -yS3HtJn/euTOHqFGeFBY0Nedphmz2+j5jM6L1n8a49xVP0SRYSPlrqmwdPPnrBtK -nh7WLilOXmwVB3Fw5cLZiunUtuhFw9LTGmy/h+QlWdJpAgMBAAEwDQYJKoZIhvcN -AQELBQADggIBAALkZbXVZnSfll5t9HoJiOZnU6FJR00gpM3FQOL90PG/XupJilq4 -E0LsXpgNR9hoFsIS7L4LZGllkbEWM7dwFYT3VOvpVu31A9hpFqNtzoWMjd/l9XTB -i4sMnPqTOTyH4cPY1sArPFnVswqtAT6fcAEqzTK785uz4LPobGKre7oJ2QIzSBgY -hQ0mG5trAOtkPNqopnOomXc8Es630mOQrPgaXxgJXvaovda9j8X5LCRQjH9qS4Ss -9TYpqdUxHTjcetH7uoMGRPCpjfw/7ckdFKRtaft4XK7Hle4Q6WdLP2xLgpvZsDPR -NoRC5E5DtE2PORxgTrBHrMcQvR1+EZLhdeEhHhDqtNDCk/KMQqnDZYf2Z/cSiEyx -ogN0mwc19h8/soluzVqq0lycRso8TO3NHBGzB0wtj4A5G/QvfA6GxEN5M884i+yL -1B7w1t7lwtC9sp6pBbc9t8nQzH4X2AkpVn7URmZ3M6+IRwcByZi6xf0JoEtMiU+7 -/fSO6gAJcf5PtalYX718hTMRic2eYyZRSOWN0oFOIMtq01gbwzLrbFmmixjjt2mU -impka38cxiDi07hZuy4fx1uGmgVtxiGLzit+MpLcmyKYQYMYyg+TpdFaFuDSGCsS -lxVW5OXCiGs7ONS61vXKT/so0NzczB0Jt1WUpW4soG6kv7W3SpHzbd7z ------END CERTIFICATE----- diff --git a/examples/leaks/example1/deployments/certificates/client-cert.txt b/examples/leaks/example1/deployments/certificates/client-cert.txt deleted file mode 100644 index d9ad0c829..000000000 --- a/examples/leaks/example1/deployments/certificates/client-cert.txt +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFOjCCAyKgAwIBAgIJAPzQwy23PdSjMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYD -VQQGEwJHQjEPMA0GA1UECAwGTG9uZG9uMQ8wDQYDVQQHDAZMb25kb24xFzAVBgNV -BAoMDkV4YW1wbGVDb21wYW55MQswCQYDVQQLDAJJVDEUMBIGA1UEAwwLZXhhbXBs -ZS5jb20xHzAdBgkqhkiG9w0BCQEWEHRlc3RAZXhhbXBsZS5jb20wHhcNMTkxMTI1 -MjAzODUyWhcNMjAxMTI0MjAzODUyWjATMREwDwYDVQQDDAhodXNreWFwaTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKEZFYP7+cI0WAnE1bm4M4RXk1aH -zjHLsrXd6scxF6O12O26n4xW7yz3wXoxtacdzvCIG4sBes9dRpnGIS08KcJF9J7o -t0+wMK2PgSsV0jotGT5lKpG9dCebRsRxWrBZ2jN65sVYCxKY8DwD9TVx2EIieAmI -ofO48XWGso0V2/eCj0w9U9qex3OImA2UQTF4xm44wbc2GQvvK/1Tp58Qqk/+7Csi -YPMyOXWRu1wX1+eAF/Gl9RPy/cy9nl9HaOEz5606jDCOu8utSdXr2ZvmEkseRFA8 -lwLeXHYuMcmMcqLy/omKPqRa2uHiAoJfve8xVuQNuqUAYJbpFhf8a425ecO6DW7j -OnVheiYrUMMCaKPXPZi7fiDCKHKvbSCqjKaKQUTIwNpvPpTJz81e3JE7gl/lb5me -e0RuV4UETw5gPnjsz/P//lGsXY+4nnvPX7WpA8W8NdcdirB++L2MICOxuKjMw3Ol -n4skFLugzwCHDisYMcP14oGcaprHcHxY1Fgo1BalFjxgiLDaNfvHa+37eHdtbxC0 -Ntlbml+n7NguIMBx+zwKEY+3SDlgLkb28Z7hVpaKQ88SfJo9C1P83GFQpKdmA1ob -jbCJOWGPA4zuZIaiWvYmp9uWsFnsO7u6oa72WcbE1zIplXs5yX5IWqr0dVSnelgm -6tpcWdpQR4g7c35jAgMBAAGjFzAVMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0GCSqG -SIb3DQEBBQUAA4ICAQCo9O7zvQarzzpFiHjEObOTuse3ePhlFcGqOH0pCK7UItXD -3UOnHCvGU/T7c55L5HqT0/oRbmA6jBZhN75ZkBaVQA9vKi8FoXTzYuQ7OJtCC7iA -h1HacI0ZrLDjaC9TYETY956K/0thYV0Rv7k40eqeJCV3NBSOm/8Pn/q+RnsHs+9Y -8kd47EEp4IQITaS+gPi8oCP4+vfzxm1MGpt64+yr8R6zaksCQAkaSyUy2X1idzhu -HiWxk6E6nu7/TvaDKQ5AzKEaCHHOkXnbwQp2HpFgdukMfk2V6Ts3c2i4EjFFrkt5 -4luI6+yJCAlemQ66+xaVE0VUKLMGkeCESNQws0TKsRt7Pl2+8m6J31vCRh9w4GiF -PMOqZW3MEapqvew+IJjeI9+pnpi1yiDhVgN6lB176YJ5ly0c2v/Yxna7dRrGDw6r -SCKd8+w7h9cq7/qiM/TEXNZUPZ56GZS5e6twjbcJ8LdurCqhMI7Kdk2MRpXtMW1j -WrOeXRkLNljt4VMrMISoM8cHbGc4+RkiHWVUC8LxQm1OFgIYVERvGaovdp4gczX5 -T2RgZkYeumQjGn1xLg8aYF4o6ohu2QkI84LgiL1lcrR1mF50/xplvH3KscDMGU0w -1Q6XUuD3abTPfRgcvlHbM4mSJsR4sUTSIX7Q2KPyFju4lJ/zSlzdSoALJgO01A== ------END CERTIFICATE----- diff --git a/examples/leaks/example1/deployments/certificates/client-key.txt b/examples/leaks/example1/deployments/certificates/client-key.txt deleted file mode 100644 index d8b1fcf00..000000000 --- a/examples/leaks/example1/deployments/certificates/client-key.txt +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIJKQIBAAKCAgEAoRkVg/v5wjRYCcTVubgzhFeTVofOMcuytd3qxzEXo7XY7bqf -jFbvLPfBejG1px3O8IgbiwF6z11GmcYhLTwpwkX0nui3T7AwrY+BKxXSOi0ZPmUq -kb10J5tGxHFasFnaM3rmxVgLEpjwPAP1NXHYQiJ4CYih87jxdYayjRXb94KPTD1T -2p7Hc4iYDZRBMXjGbjjBtzYZC+8r/VOnnxCqT/7sKyJg8zI5dZG7XBfX54AX8aX1 -E/L9zL2eX0do4TPnrTqMMI67y61J1evZm+YSSx5EUDyXAt5cdi4xyYxyovL+iYo+ -pFra4eICgl+97zFW5A26pQBglukWF/xrjbl5w7oNbuM6dWF6JitQwwJoo9c9mLt+ -IMIocq9tIKqMpopBRMjA2m8+lMnPzV7ckTuCX+VvmZ57RG5XhQRPDmA+eOzP8//+ -Uaxdj7iee89ftakDxbw11x2KsH74vYwgI7G4qMzDc6WfiyQUu6DPAIcOKxgxw/Xi -gZxqmsdwfFjUWCjUFqUWPGCIsNo1+8dr7ft4d21vELQ22VuaX6fs2C4gwHH7PAoR -j7dIOWAuRvbxnuFWlopDzxJ8mj0LU/zcYVCkp2YDWhuNsIk5YY8DjO5khqJa9ian -25awWew7u7qhrvZZxsTXMimVeznJfkhaqvR1VKd6WCbq2lxZ2lBHiDtzfmMCAwEA -AQKCAgB+Jp5qlE6ofUTToYebv1rYL5v5Dq+w3so7EGRhR1gzopsUzidSRmFU3U5s -2bBeBUGfqXWoDKiW6Xv3vucL/SjWMOG17pZdmKMFxnJnwta1J8u0yJPlPG5Q9Y8d -FYbmwfXUilFcB+3jyk+VL6Q9DcFDSKqnDI+FwzWRysDXKl7uGxcLpJqdf+i/2B75 -wzap/uGkPl2zknFanxfbcD66mNpFemKGBI3W42WLY2tMWn9/kRcu675WuNl2EqaK -BeljMLojNM3C2ILGpBRFqELnieqZWEI2crvuSyIsiVADfC/o2k/odJFJMrxkVg+Q -+FhLjl90hiu6OelpQ21BqzCt8qgeFqqCJ1EgqP2i+P7QSrHx0zlAd+NbZwOVZyku -jGw1crf6KX791OXSTOuPGnE669P+pAzByfWhUfryvrMvSXA9cjq+Kb1L2B6UfwAI -SxYSR6LAvvv5QPAXvds9EasqpyY25WhxYA817Yy2lC26Yxc0/zMrIuiuuv5sjbya -qcn5e3eJncFSEWFVYH4mPuxgh1EGw4MW7MDrOuPF3L3wuxnBMyXhdT74tPAM8PSs -WxRAbixOU1XtDxJe/YWQ4gFjoIgiIxxESNKgPTxYf+H2IoWa0JGsSY6tbtSxxUzS -9Tw4cOr795BuTM//SBKhuFh9NBpd2EY7PB5H+Td7qfQJBkq+AQKCAQEA035yCe8i -co2jct1giq5dubq4S1zRg1QG8hlLQPsv5OcbchtfIW8WdxI9fjgPlAAUK8gaubvw -lB4XTsOJ90+UnePVLydRAHgZ0RsSqfvI1yZ+oYr+oUuqpeTEdxNFEjHb5MAtvpK5 -pG/g0MZ8x6Ymyo97LMrZT8vM/6W9xZ75MWhdEvfxxsvuCdFMOuUzDfb91q5zo4g2 -7sKSWPUtQncaNVG5+SqxHNCsyBuO3jNdH2Na7rlJfw2oX98uLPpkOr0lVCUmf5r0 -AQ0l/RfpxzgwEyU7Ymxy8U7xMeYSFYWJN50sSMu1DEj/N7a/S8b60M3YNzlpqE/5 -fxVSN9MdaB4GIQKCAQEAwv+4KSF2UdxJ8L/1b4kgYL0AhGIuWcWNuecPXlc7B+8b -pKhl70D9z4nnKbWt7N8vjQ/SbJeGQZnHc1m5V7xgNJ9/fJ605ufpZ96uKy9Xa+DT -2HqY+DqW/346tDIzVUGcwtLAu23ru7rczbJ7wyZKWNjI703DLYwhPnfRGYKxgX36 -CIGUX8a0MvwOqSBLAve6Nve2U6VgUjC/7+5hzoTBHAXyyUSAFdqgqXbbnVlvhKuJ -03gA0nLTS89z83fPLvya9ItwSBH6WQU3KMEvzQu1OgbvWN5uhlKZzYlhUvyNmJGt -/HEkIwOOC6QoAW85yy8J5MzTgYzuPEmnu/P7wRPsAwKCAQEAyIm3HFBRu4kuGLZs -2lLnsDqqkVsblolQZLMzNhR3n3a8AYCOvacWCCWVhV8m9lD0z2bYYJEiV3AI7bhf -087zvprQA/wlxGodILepBOEn2Uo4/HhNZSfYUaEP4VC2R8BbHxZSycdam98xrwTm -QHD9i0htpVVapV07rpS70u0goIay6k+MQ9IOjeSVgaretDklDDEymTeJzu9T0WH5 -XnKMuU4bJ3Yhpo7/pmbrGypc/Gw7Ru0OEZkjtHRs1l0+OKws/xKS5KBLCcwr30aT -d0GB5EWDf5oRi1otPgFH2HxcVg2EdioiK9nzliKEVRgBr4ffos2fr+bVTnkrEp/t -3FHLwQKCAQEAuiQhSCIJMFt4ubiEMdRUdAP3WmfelxNeFvfaU9QxJYG6gZO+uoTv -xA1//PDQ9iyW17EizUZXgoepPROJOZc4vwMCT5OwXDtFM0H+QHsQmIolr6BYJZzI -R1vX7et91QSs/8zu7fwf6zSVUkXunnsOvYEzTjyM9A2wLlFx6Ug46cO3yibn3AVy -PrkdxZRuBocz2wTbpz1WlR60GfUUqG9RZ87F1BrvqezpMNulCK83JQ4aoyMKpdm2 -mceOh/r2a4P25zm0FRgUQqYX4W+IkdN7S8kS8WJjXxW6e9mIbg9nmxx1WWUnecUK -81HgXn4uTSa56w8bV6+QOzyUQXbF+6lowQKCAQAhUyp4kmn57jrSFNRDEz07YLOI -PGpmTXgon4fsROw+gtEl9rpTCdlE7th3R7SEoLRnWYkmY8hxSeTdhYx3VtfJWbOa -6L/hg+eUEId0y/XZtipaniLx8JTtO0+V9N+zJDltMgbr7CTf9/Qj5Ul5dOfZsmSr -LaehY6vGSo7E17JBvMZMUHuPTiXZvLu7PRVTE4R9lsrpFVWgqaHrU+f6beaUlRip -GyreRWIebgPbYduC2vN+cLLq3nrHQ0dpB2x96ZOZQayh1pVRhs/P+tyzPx26cByF -M73Q0k9ni4DbbrmxuD76+zQRDuU185xC629RHa0I1S2D3yIDBMAP1ZbetYQP ------END RSA PRIVATE KEY----- diff --git a/examples/leaks/example1/deployments/certificates/server-cert.txt b/examples/leaks/example1/deployments/certificates/server-cert.txt deleted file mode 100644 index e26a66ebc..000000000 --- a/examples/leaks/example1/deployments/certificates/server-cert.txt +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFPDCCAySgAwIBAgIJAPMZ50fg5NUxMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYD -VQQGEwJHQjEPMA0GA1UECAwGTG9uZG9uMQ8wDQYDVQQHDAZMb25kb24xFzAVBgNV -BAoMDkV4YW1wbGVDb21wYW55MQswCQYDVQQLDAJJVDEUMBIGA1UEAwwLZXhhbXBs -ZS5jb20xHzAdBgkqhkiG9w0BCQEWEHRlc3RAZXhhbXBsZS5jb20wHhcNMTkxMTI1 -MjAzODQ5WhcNMjAxMTI0MjAzODQ5WjAUMRIwEAYDVQQDDAlkb2NrZXJhcGkwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDpgXhG0TjmKBFZyIf7A5iLPvyt -nAUwVgGIgMSQsolEecqPVusN2ABpfXC0ZPZYQrevla1YB3/ndsu2LCiuSqRCBl+z -EVLrjvOCntKOgFRlY7bmDH7yRmoB/Nzqme3HJNhZDVEmMZ/3x/2dfc/VgX2yHu6S -Sx/0wio21pTQS2+Fg6Vf9ndBzy3ajNWmDWtu9zCSvEKeNun5vaP0y9Uttrg9UZJ/ -oUmaKHq7AGY2VS2ck/xSvQqJtpVX0dD4A+kEKMkL96ckCn3eAfmo5cjuItwgcgJ9 -xo6fHQrdxS88U/3XKO7FbpM3OrYrZ7LLav3UknANS4bbLjyxFzRlmsIcstX2nVBC -CQ7kKrREqhFG/IF9SbgwtzHhKYjzr1WOl/raXCFKTZUcTtvpo2nghrp/Mi//diAy -RhfKv1AkC29ubO2TrEIv2Lo2x7u2Z6ujcbj22doDrYlx6yGmRVtAcxoooTf72aOm -ktalvz3b3Bq/D2/SLfsPCBq2wD9kTFkgBuQUtdzUsAiDfHKfJcESSRWBgA/r29eX -MLALSOdI4qThvusXC83gzz9Wb5OsrrJglPoONmhZQq+gb9u9Qyg8k5nilwldCvma -LEyMXqOJTQjcZAr9ReRyaGiIcmbfZ2LhQXRbSgB86QjyedRUGeXTXwdA9IVuHUIJ -A2HValL40axYF4WcLwIDAQABoxgwFjAUBgNVHREEDTALgglkb2NrZXJhcGkwDQYJ -KoZIhvcNAQEFBQADggIBACZh2QfdkTXLlszCAwMP6DM+N5ow3GUce95FZrh0ZBgX -jZK7QXVpqFpFmelH7MchDwUpCl0aq2GEt2a0ow/LF593VXjRtpSOAF0IWy8+vmp+ -kKmawzB/y9kOhmJxEj7zkP2kcsC6MeEEOJwZwB5a4S1WhBMsXGNGjULbXHQ6jRZA -cnQFkyt95xqMkJuvUFQjYgbpEkQ0Ss4YktM6BDe9CzqBhtnB+FvL0HK3vXobPyhV -78LMZDvAm0/F4rM/AVjcOPR9L479fhQxb9aroS1fym4amsFdqRvJo3hj9DAF1agm -hD7qPJjLizuJ1aFHIBNMRfHo/EMrCctqG+vpJGNdmJk3/m1pjTe/e6ExB2cbPs+C -Z2mhxtIeDnjw8EM3N06jtgT3aUswXz4oS0wqTu5S1sefoM1tneos9WUi8vlnXxHS -+MP0JT7oTBzghraA5SWzP6yVavIMPbpQSlNNCqbXRC2b1XwXkZaUMOD5C/iD46oD -xNt/c91dcZ8b0NGwGuvPrt+YfUVMhFJFkfZIWR/PWm5J9PNnepEiE0iNWVu+Rfeo -p6KMM5nouFy258FBR8+ZNLPMXq3rXHxsAV9IP7S1jlO8bMVZTtz5QoeO52ycWqBR -BgqJcZQ19ZCpYuXOqemc0flSKBNM/t4Ry4sxG9CuZmdj7xpsWtMJNFuS40duYAUz ------END CERTIFICATE----- diff --git a/examples/leaks/example1/deployments/certificates/server-key.txt b/examples/leaks/example1/deployments/certificates/server-key.txt deleted file mode 100644 index 366e4c167..000000000 --- a/examples/leaks/example1/deployments/certificates/server-key.txt +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIJKAIBAAKCAgEA6YF4RtE45igRWciH+wOYiz78rZwFMFYBiIDEkLKJRHnKj1br -DdgAaX1wtGT2WEK3r5WtWAd/53bLtiworkqkQgZfsxFS647zgp7SjoBUZWO25gx+ -8kZqAfzc6pntxyTYWQ1RJjGf98f9nX3P1YF9sh7ukksf9MIqNtaU0EtvhYOlX/Z3 -Qc8t2ozVpg1rbvcwkrxCnjbp+b2j9MvVLba4PVGSf6FJmih6uwBmNlUtnJP8Ur0K -ibaVV9HQ+APpBCjJC/enJAp93gH5qOXI7iLcIHICfcaOnx0K3cUvPFP91yjuxW6T -Nzq2K2eyy2r91JJwDUuG2y48sRc0ZZrCHLLV9p1QQgkO5Cq0RKoRRvyBfUm4MLcx -4SmI869Vjpf62lwhSk2VHE7b6aNp4Ia6fzIv/3YgMkYXyr9QJAtvbmztk6xCL9i6 -Nse7tmero3G49tnaA62JceshpkVbQHMaKKE3+9mjppLWpb8929wavw9v0i37Dwga -tsA/ZExZIAbkFLXc1LAIg3xynyXBEkkVgYAP69vXlzCwC0jnSOKk4b7rFwvN4M8/ -Vm+TrK6yYJT6DjZoWUKvoG/bvUMoPJOZ4pcJXQr5mixMjF6jiU0I3GQK/UXkcmho -iHJm32di4UF0W0oAfOkI8nnUVBnl018HQPSFbh1CCQNh1WpS+NGsWBeFnC8CAwEA -AQKCAgBcgyQRAqGFZkiBhtaBF8qfGIRpkA/qN5kB6Op33ZRO4eXj5m7YHEUFhmJZ -xkpna390/FsiLk55ePJ6qYIwk3gChJ3zxyBQHWHS1XPca3GEff4fpMHC4Szsvq8T -74pqROnGVmVZOX4EYGLVu9vU3inboS+qHEN76FVrRpbM86Yqgp7Jp09WbmvfU77t -vBFddGf1KstF/cGzZXQI75z1MJhMCv58vHz5q6H8ZssYKaUZjPQCH82GBCWlFoax -THNMZ5BHwoWg3NtDUwsD5I438u29mQ3toPYuigYdGRt+zlQao6f95rJCxmsYRUxs -FWadiqsESXETc30uOGBVBPx0/FGSUpATYSXhlk12IUXRglkSAucqh4rk0pUKt+Ch -RFevD2xWx6lGupClniLQlgYio01YkFDTYsAN5tjZqlFJT4qX679LbICF83f0TRRH -JFQT98e8EAnFr0SuRMYKdc6J/iws9t0wClwX0tguednaLc6/bkQ50+NtRS/S7d6B -fCtKCrOz+f14dNRtKnopPr/08NUrIbTqqU6zeEO3v5qk5AbCekefkDQ/CDe5C4PO -/HK2J3f2c/4vAjoHtltKann+94uyFHt/+VmEV9BtJRzNq1iP1tQXndhJ9m0Oy2xy -zaeNcNObUbHNYsP9vPC3LWvUdav8TaA6/9lXVmIp4O7ip5pZYQKCAQEA/9u9cTx8 -idKCaMICEl2drTHCsrNHtLTnz7bLEZtEXVjgu0M8YSEF+zq6UD9KvPfvXjCwYCIc -FTvN6nFxgkX+r7h8WlypuQgAXKMPWRe1b+kpYgVNXAI1hZIojvYrWjeFMYakTL95 -EzknEED5Nuj6mj471K14PhAj4c56xEBtNGY10CgW94PqxZ9369euu7Y2A9rLEVgy -ena5xZm5rbN5tFaBc751FBOUA9JiCG5KMsDpr98Kr+k99tAPWsNokJZj9Vt1xlm8 -VJYLL/x5eKJ9BkmBcqgc9SugVGIg1L0xHRkNhPbU+NzHfWAEEfCI6zdaRB3n0IKw -mOSqQK+LP9ZkvwKCAQEA6aKP4UCYqtvv/uCZawlboicxe8oW5yteTJLA6ZRUct+o -robvLsdhHsx1ixj9F8gIEj4rOm5Q19Hb8HlxBd4ZnLO/+kd7LCmzfTrCw8cLNUZT -XHJKRV7md1rpdGxmIpvn5tPfYsAkvt6bM2451eARS0YyCZ7JRh654KItL4EdWwOd -EsG6I7rBXH/w0ol/WTT7/CG1GTT++4FZeZmZwnGh4u/Oks6M77q6T3g9GDy/DZ7r -BhhDUimDcfpTtywkDjY5D31EL78Sy09BYkqpIw1yhTGZR9yjs1mAtqrBaNtgoph1 -raF4c43wos78OqvYCPwvdVvFJnwfrx16C6QeYpB0kQKCAQEA/coKlLrp0Y/k2WKv -yWXg1H4KYVWh5+aWFhx8O3+nBWz2pemgh7vJAhWT36uYR+8rGWP0X7cV4h4LN+TF -MfKaGdVGTB+kHqyIJ1t7CuWQjGxcJyWZQY3TZyW+Y2hdQkTWMnUaniJDR8UmMWIx -kbzxb3QRxvk2z2EVJpO4hNhfOl20PUC231eT1elDe8XaRcoMtDAfw5mXoJAJ366H -VnwzWaWBDL07xulQpaXWpgQ4RzXB1zjHkgwq8ZoZ0O8J1nnGtwa8wT4bqE+Y00V9 -fCK5HzZkV8XXy301sN4RMNRlVjaWiXCJej0NCBjokJ7mQWMLf4umeNZZs58GHdnC -p1TTYwKCAQAYa3diceADK83f9BXVDDtZrYMMj0jpjKzkkAo939Ub1KjK5Sum1gwe -rfwzN79sdunxDjJyfwlQJY05i1f25woCSP9t537GVO1/z16AHBPd06Xu6bs9mPe5 -zfTMyG+8elM42zhkF/U/RgEu1PySkEL+fS3Jt6EOBTQkeI8EghhRZQVL6pfMGD8R -rgW728dFybX02okVQ2bLXu+9OALMQhhLogkTaydr/zZuDAFGwUKu58dk8bBHrDMi -/Kk3YhO6sIwyREOWQgBy46vP3EHleghYR6Df0/4ARwCfFyX0Ecn99LWIGnJ+kX1v -ZvcSItgHyGQlfhwTM7IUGZ6iDNtoLfUhAoIBAG/Ti5Kg0i378r3yAImnaLEsfC0n -SRuX4SSWpaZ9e7C/IWXy+DNeNZMSmMG4SCN4AmUJES1oaPBbaIouCCMTnAchStyx -gz9Nk2dYSsylc1fZ4Uh3mfbGam+Ojl9kib4Vfzdz3U4ToP1aYypLH47ty2LTnBbC -JO4ssVSru3yJI58mkLAFkfcqEoqMwJqGvP8MzH1zTDJrgoqHKEiB+mm52ukK747L -5REfC3dVsi7iTjmx9Z3ieF00JxszShJ7IQD2PlpAanDbfbJeRgI22GsEXSD7oeNb -HzLLxdB5dwqmy/3Vo/+mPhIuhLXBnzIIizcd43sugOb5JoJDuZvpDaAfhJo= ------END RSA PRIVATE KEY----- diff --git a/examples/leaks/example1/deployments/daemon.json b/examples/leaks/example1/deployments/daemon.json deleted file mode 100644 index b487c3584..000000000 --- a/examples/leaks/example1/deployments/daemon.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "tls": true, - "tlscacert": "/data/certs/ca.pem", - "tlscert": "/data/certs/server-cert.pem", - "tlskey": "/data/certs/server-key.pem", - "tlsverify": true -} \ No newline at end of file diff --git a/examples/leaks/example1/deployments/docker-compose.yml b/examples/leaks/example1/deployments/docker-compose.yml deleted file mode 100644 index c6249e30d..000000000 --- a/examples/leaks/example1/deployments/docker-compose.yml +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -version: '3' -services: - - dockerapi: - privileged: true - image: docker:stable-dind - container_name: horus_Docker_API - command: "dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2376" - ports: - - "2376:2376" - volumes: - - docker_vol:/var/lib/docker - - ../deployments/daemon.json:/etc/docker/daemon.json:ro - - ../deployments/certs/:/data/certs/ - networks: - - horus_net - - api: - container_name: horus_API - environment: - GOPATH: /go/ - # required envs - HORUS_DATABASE_DB_ADDR: mongodb - HORUS_DATABASE_DB_NAME: horusDB - HORUS_DATABASE_DB_USERNAME: horusUser - HORUS_DATABASE_DB_PASSWORD: horusPassword - HORUS_API_DEFAULT_USERNAME: horusUser - HORUS_API_DEFAULT_PASSWORD: horusPassword - HORUS_API_DEFAULT_ITERATIONS: 100000 - HORUS_API_DEFAULT_KEY_LENGTH: 512 - HORUS_API_ALLOW_ORIGIN_CORS: "*" - HORUS_API_DEFAULT_HASH_FUNCTION: SHA512 - HORUS_DOCKERAPI_ADDR: dockerapi - HORUS_DOCKERAPI_CERT_FILE: /go/src/github.com/ZupIT/horus/cert.pem - HORUS_DOCKERAPI_CERT_KEY: /go/src/github.com/ZupIT/horus/key.pem - HORUS_DOCKERAPI_CERT_PATH: /go/src/github.com/ZupIT/horus/ - HORUS_DOCKERAPI_TLS_VERIFY: 1 - # optional envs - HORUS_DOCKERAPI_PORT: 2376 - HORUS_LOGGING_GRAYLOG_APP_NAME: horus - build: - context: ../ - dockerfile: deployments/dockerfiles/api.Dockerfile - command: "go run api/server.go" - volumes: - - docker_vol:/var/lib/docker - - ../deployments/certs/client-horusapi-cert.pem:/go/src/github.com/ZupIT/horus/cert.pem:ro - - ../deployments/certs/client-horusapi-key.pem:/go/src/github.com/ZupIT/horus/key.pem:ro - - ../deployments/certs/ca.pem:/go/src/github.com/ZupIT/horus/ca.pem:ro - ports: - - "8888:8888" - networks: - - horus_net - depends_on: - - mongodb - - dockerapi - external_links: - - dockerapi:dockerapi - - mongodb: - container_name: horus_MongoDB - environment: - DATABASE: horusDB - DATABASE_USER: horusUser - DATABASE_PASS: horusPassword - build: - context: ../ - dockerfile: deployments/dockerfiles/db.Dockerfile - ports: - - "27017:27017" - - "27018:27018" - volumes: - - mongo_vol:/data/db - networks: - - horus_net - - fe: - container_name: horus_Dashboard - image: "horus/dashboard:latest" - environment: - REACT_APP_HORUS_FE_API_ADDRESS: "http://127.0.0.1:8888" - ports: - - "8080:80" - networks: - - horus_net - -networks: - horus_net: - -volumes: - docker_vol: - mongo_vol: diff --git a/examples/leaks/example1/deployments/dockerfiles/api.Dockerfile b/examples/leaks/example1/deployments/dockerfiles/api.Dockerfile deleted file mode 100644 index d6ef37632..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/api.Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM golang - -ADD . /go/src/github.com/ZupIT/horus -WORKDIR /go/src/github.com/ZupIT/horus diff --git a/examples/leaks/example1/deployments/dockerfiles/bandit/Dockerfile b/examples/leaks/example1/deployments/dockerfiles/bandit/Dockerfile deleted file mode 100644 index 6dc314e91..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/bandit/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM python:3.6-alpine as builder - -# Install and compile bandit + its dependencies -RUN apk add --no-cache jq alpine-sdk -RUN pip install bandit - -# Now build a fresh container, copying across the compiled pieces -FROM python:3.6-alpine - -COPY --from=builder /usr/local/lib/python3.6 /usr/local/lib/python3.6 -COPY --from=builder /usr/local/bin/bandit /usr/local/bin/bandit - -# Add packages that we need in the final image on runtime -RUN apk add --no-cache git jq bash openssh-client diff --git a/examples/leaks/example1/deployments/dockerfiles/brakeman/Dockerfile b/examples/leaks/example1/deployments/dockerfiles/brakeman/Dockerfile deleted file mode 100644 index a95cd8cf5..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/brakeman/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM ruby:2.4-alpine - -RUN apk update && apk upgrade \ - && apk add --no-cache alpine-sdk bash openssh-client \ - && apk add git - -RUN gem install brakeman - -RUN wget -O jq https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 -RUN chmod +x ./jq -RUN cp jq /usr/bin diff --git a/examples/leaks/example1/deployments/dockerfiles/db.Dockerfile b/examples/leaks/example1/deployments/dockerfiles/db.Dockerfile deleted file mode 100644 index 092b3e708..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/db.Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM mongo:4.0.3 - -ADD deployments/mongo-init.js /docker-entrypoint-initdb.d/ \ No newline at end of file diff --git a/examples/leaks/example1/deployments/dockerfiles/enry/Dockerfile b/examples/leaks/example1/deployments/dockerfiles/enry/Dockerfile deleted file mode 100644 index 688a0a39c..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/enry/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM golang:alpine as builder - -RUN apk update && apk upgrade \ - && apk add --no-cache alpine-sdk bash make git - -RUN git clone https://github.com/src-d/enry.git && cd enry && make build - -# From the base image -FROM alpine:3.8 - -RUN apk update && apk upgrade \ - && apk add --update --no-cache git openssh-client -COPY --from=builder /go/enry/build/bin/enry /usr/bin/ \ No newline at end of file diff --git a/examples/leaks/example1/deployments/dockerfiles/gitauthors/Dockerfile b/examples/leaks/example1/deployments/dockerfiles/gitauthors/Dockerfile deleted file mode 100644 index 3b18212a7..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/gitauthors/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM alpine:3.8 - -RUN apk update && apk upgrade \ - && apk add --update --no-cache git openssh-client diff --git a/examples/leaks/example1/deployments/dockerfiles/gitleaks/Dockerfile b/examples/leaks/example1/deployments/dockerfiles/gitleaks/Dockerfile deleted file mode 100644 index 836853f92..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/gitleaks/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM zricethezav/gitleaks - -RUN apk --no-cache add ca-certificates openssh-client jq - -ENTRYPOINT [] -CMD ["/bin/sh"] \ No newline at end of file diff --git a/examples/leaks/example1/deployments/dockerfiles/gosec/Dockerfile b/examples/leaks/example1/deployments/dockerfiles/gosec/Dockerfile deleted file mode 100644 index 55a562a07..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/gosec/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM securego/gosec:latest - -RUN apk --no-cache add ca-certificates openssh-client jq - -ENTRYPOINT [] -CMD ["/bin/sh"] diff --git a/examples/leaks/example1/deployments/dockerfiles/npmaudit/Dockerfile b/examples/leaks/example1/deployments/dockerfiles/npmaudit/Dockerfile deleted file mode 100644 index 5d4b7a82e..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/npmaudit/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -# Dockerfile used to create "horus/npmaudit" image -# https://hub.docker.com/r/horuszup/npmaudit/ - -FROM node:alpine - -RUN apk update && apk upgrade \ - && apk add --no-cache alpine-sdk bash openssh-client \ - && apk add git - -RUN wget -O jq https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 -RUN chmod +x ./jq -RUN cp jq /usr/bin \ No newline at end of file diff --git a/examples/leaks/example1/deployments/dockerfiles/safety/Dockerfile b/examples/leaks/example1/deployments/dockerfiles/safety/Dockerfile deleted file mode 100644 index 2c43bbba3..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/safety/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM python:3.6-alpine as builder - -# Install and compile safety + its dependencies -RUN apk add --no-cache jq alpine-sdk bash openssh-client \ - && pip install safety - -# Build a fresh container, copying across the compiled pieces -FROM python:3.6-alpine - -COPY --from=builder /usr/local/lib/python3.6 /usr/local/lib/python3.6 -COPY --from=builder /usr/local/bin/safety /usr/local/bin/safety - -# Add packages that we need in the final image on runtime -RUN apk add --no-cache git jq bash openssh-client diff --git a/examples/leaks/example1/deployments/dockerfiles/spotbugs/Dockerfile b/examples/leaks/example1/deployments/dockerfiles/spotbugs/Dockerfile deleted file mode 100644 index ede5db0b2..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/spotbugs/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -FROM openjdk:8-jdk-alpine - -RUN apk update && apk upgrade \ - && apk add --no-cache curl tar bash wget unzip openssh-client \ - && apk add git - -ARG SPOTBUGS_VERSION=4.0.0-beta4 -ARG FINDSECBUGS_VERSION=1.9.0 -ARG MAVEN_VERSION=3.6.2 -ARG GRADLE_VERSION=5.6.2 -ARG USER_HOME_DIR="/root" - -RUN mkdir -p /usr/share/maven /usr/share/maven/ref \ - && curl -fsSL -o /tmp/apache-maven.tar.gz https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz \ - && tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \ - && rm -f /tmp/apache-maven.tar.gz \ - && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn \ - && mkdir -p /opt \ - && cd /opt \ - && wget -nc -O gradle.zip https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip \ - && unzip gradle.zip \ - && rm -f gradle.zip \ - && mv gradle-${GRADLE_VERSION} gradle \ - && wget -nc -O spotbugs.zip http://repo.maven.apache.org/maven2/com/github/spotbugs/spotbugs/${SPOTBUGS_VERSION}/spotbugs-${SPOTBUGS_VERSION}.zip \ - && unzip spotbugs.zip \ - && rm -f spotbugs.zip \ - && mv spotbugs-${SPOTBUGS_VERSION} spotbugs \ - && wget -nc -O findsecbugs-plugin-${FINDSECBUGS_VERSION}.jar https://repo1.maven.org/maven2/com/h3xstream/findsecbugs/findsecbugs-plugin/${FINDSECBUGS_VERSION}/findsecbugs-plugin-${FINDSECBUGS_VERSION}.jar \ - && echo -n $SPOTBUGS_VERSION > /opt/spotbugs/version - -ENV MAVEN_HOME /usr/share/maven -ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2" -ENV GRADLE_USER_HOME "$USER_HOME_DIR/.gradle" - -COPY mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh -COPY settings-docker.xml /usr/share/maven/ref/ -COPY exclude.xml /opt/spotbugs/exclude.xml - -VOLUME "$USER_HOME_DIR/.m2" -VOLUME "$USER_HOME_DIR/.gradle" diff --git a/examples/leaks/example1/deployments/dockerfiles/spotbugs/exclude.xml b/examples/leaks/example1/deployments/dockerfiles/spotbugs/exclude.xml deleted file mode 100644 index 8af137023..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/spotbugs/exclude.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/leaks/example1/deployments/dockerfiles/spotbugs/mvn-entrypoint.sh b/examples/leaks/example1/deployments/dockerfiles/spotbugs/mvn-entrypoint.sh deleted file mode 100644 index 6c00905cf..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/spotbugs/mvn-entrypoint.sh +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -o pipefail - -copy_reference_file() { - local root="${1}" - local f="${2%/}" - local logfile="${3}" - local rel="${f/${root}/}" # path relative to /usr/share/maven/ref/ - echo "$f" >> "$logfile" - echo " $f -> $rel" >> "$logfile" - if [[ ! -e ${MAVEN_CONFIG}/${rel} || $f = *.override ]] - then - echo "copy $rel to ${MAVEN_CONFIG}" >> "$logfile" - mkdir -p "${MAVEN_CONFIG}/$(dirname "${rel}")" - cp -r "${f}" "${MAVEN_CONFIG}/${rel}"; - fi; -} - -copy_reference_files() { - local log="$MAVEN_CONFIG/copy_reference_file.log" - - if (touch "${log}" > /dev/null 2>&1) - then - echo "--- Copying files at $(date)" >> "$log" - find /usr/share/maven/ref/ -type f -exec bash -eu -c 'copy_reference_file /usr/share/maven/ref/ "$1" "$2"' _ {} "$log" \; - else - echo "Can not write to ${log}. Wrong volume permissions? Carrying on ..." - fi -} - -export -f copy_reference_file -copy_reference_files -unset MAVEN_CONFIG - -/usr/bin/mvn install -Dmaven.test.skip=true \ No newline at end of file diff --git a/examples/leaks/example1/deployments/dockerfiles/spotbugs/settings-docker.xml b/examples/leaks/example1/deployments/dockerfiles/spotbugs/settings-docker.xml deleted file mode 100644 index b65947c89..000000000 --- a/examples/leaks/example1/deployments/dockerfiles/spotbugs/settings-docker.xml +++ /dev/null @@ -1,5 +0,0 @@ - - /usr/share/maven/ref/repository - \ No newline at end of file diff --git a/examples/leaks/example1/deployments/scripts/build-containers.sh b/examples/leaks/example1/deployments/scripts/build-containers.sh deleted file mode 100755 index bb5c6b53b..000000000 --- a/examples/leaks/example1/deployments/scripts/build-containers.sh +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -docker build deployments/dockerfiles/bandit/ -t horus/bandit:latest -docker build deployments/dockerfiles/brakeman/ -t horus/brakeman:latest -docker build deployments/dockerfiles/enry/ -t horus/enry:latest -docker build deployments/dockerfiles/gitauthors/ -t horus/gitauthors:latest -docker build deployments/dockerfiles/gosec/ -t horus/gosec:latest -docker build deployments/dockerfiles/npmaudit/ -t horus/npmaudit:latest -docker build deployments/dockerfiles/npmaudit/ -t horus/yarnaudit:latest -docker build deployments/dockerfiles/safety/ -t horus/safety:latest -docker build deployments/dockerfiles/gitleaks/ -t horus/gitleaks:latest -docker build deployments/dockerfiles/spotbugs/ -t horus/spotbugs:latest \ No newline at end of file diff --git a/examples/leaks/example1/deployments/scripts/check-containers-version.sh b/examples/leaks/example1/deployments/scripts/check-containers-version.sh deleted file mode 100755 index 8e85c8560..000000000 --- a/examples/leaks/example1/deployments/scripts/check-containers-version.sh +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -banditVersion=$(docker run --rm horus/bandit:latest bandit --version | grep bandit | awk -F " " '{print $2}') -brakemanVersion=$(docker run --rm horus/brakeman:latest brakeman --version | awk -F " " '{print $2}') -enryVersion=$(docker run --rm horus/enry:latest enry --version) -gitAuthorsVersion=$(docker run --rm horus/gitauthors:latest git --version | awk -F " " '{print $3}') -gosecVersion=$(docker run --rm horus/gosec:latest gosec --version | grep Version | awk -F " " '{print $2}') -npmAuditVersion=$(docker run --rm horus/npmaudit:latest npm audit --version) -yarnAuditVersion=$(docker run --rm horus/yarnaudit:latest yarn audit --version ) -safetyVersion=$(docker run --rm horus/safety:latest safety --version | awk -F " " '{print $3}') -gitleaksVersion=$(docker run --rm horus/gitleaks:latest gitleaks --version) -spotbugsVersion=$(docker run --rm horus/spotbugs:latest cat /opt/spotbugs/version) - -echo "bandit: $banditVersion" -echo "brakeman: $brakemanVersion" -echo "enry: $enryVersion" -echo "gitauthors: $gitAuthorsVersion" -echo "gosecVersion: $gosecVersion" -echo "npmauditVersion: $npmAuditVersion" -echo "yarnauditVersion: $yarnAuditVersion" -echo "safetyVersion: $safetyVersion" -echo "gitleaksVersion: $gitleaksVersion" -echo "spotbugsVersion: $spotbugsVersion" \ No newline at end of file diff --git a/examples/leaks/example1/deployments/scripts/create-certs.sh b/examples/leaks/example1/deployments/scripts/create-certs.sh deleted file mode 100755 index e4ade535a..000000000 --- a/examples/leaks/example1/deployments/scripts/create-certs.sh +++ /dev/null @@ -1,149 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -EXPIRATIONDAYS=700 -CASUBJSTRING="/C=GB/ST=London/L=London/O=ExampleCompany/OU=IT/CN=example.com/emailAddress=test@example.com" - -while [[ $# -gt 1 ]] -do -key="$1" - -case $key in - -m|--mode) - MODE="$2" - shift - ;; - -h|--hostname) - NAME="$2" - shift - ;; - -hip|--hostip) - SERVERIP="$2" - shift - ;; - -pw|--password) - PASSWORD="$2" - shift - ;; - -t|--targetdir) - TARGETDIR="$2" - shift - ;; - -e|--expirationdays) - EXPIRATIONDAYS="$2" - shift - ;; - --ca-subj) - CASUBJSTRING="$2" - shift - ;; - *) - # unknown option - ;; -esac -shift -done - -echo "Mode $MODE" -echo "Host/Clientname $NAME" -echo "Host IP $SERVERIP" -echo "Targetdir $TARGETDIR" -echo "Expiration $EXPIRATIONDAYS" - -programname=$0 - -function usage { - echo "usage: $programname -m ca -h example.de [-hip 1.2.3.4] -pw my-secret -t /target/dir [-e 365]" - echo " -m|--mode 'ca' to create CA, 'server' to create server cert, 'client' to create client cert" - echo " -h|--hostname|-n|--name DNS hostname for the server or name of client" - echo " -hip|--hostip host's IP - default: none" - echo " -pw|--password Password for CA Key generation" - echo " -t|--targetdir Targetdir for certfiles and keys" - echo " -e|--expirationdays certificate expiration in day - default: 700 days" - echo " --ca-subj subj string for ca cert - default: Example String..." - exit 1 -} - -function createCA { - openssl genrsa -aes256 -passout pass:$PASSWORD -out $TARGETDIR/ca-key.pem 4096 - openssl req -passin pass:$PASSWORD -new -x509 -days $EXPIRATIONDAYS -key $TARGETDIR/ca-key.pem -sha256 -out $TARGETDIR/ca.pem -subj $CASUBJSTRING - - chmod 0400 $TARGETDIR/ca-key.pem - chmod 0444 $TARGETDIR/ca.pem -} - -function checkCAFilesExist { - if [[ ! -f "$TARGETDIR/ca.pem" || ! -f "$TARGETDIR/ca-key.pem" ]]; then - echo "$TARGETDIR/ca.pem or $TARGETDIR/ca-key.pem not found. Create CA first with '-m ca'" - exit 1 - fi -} - -function createTLSCert { - openssl req -x509 -newkey rsa:4096 -keyout $TARGETDIR/api-tls-key.pem -out $TARGETDIR/api-tls-cert.pem -days 365 -nodes -subj '/CN=localhost' -} - -function createServerCert { - checkCAFilesExist - - if [[ -z $SERVERIP ]]; then - IPSTRING="" - else - IPSTRING=",IP:$SERVERIP" - fi - - openssl genrsa -out $TARGETDIR/server-key.pem 4096 - openssl req -subj "/CN=$NAME" -new -key $TARGETDIR/server-key.pem -out $TARGETDIR/server.csr - echo "subjectAltName = DNS:$NAME$IPSTRING" > $TARGETDIR/extfile.cnf - openssl x509 -passin pass:$PASSWORD -req -days $EXPIRATIONDAYS -in $TARGETDIR/server.csr -CA $TARGETDIR/ca.pem -CAkey $TARGETDIR/ca-key.pem -CAcreateserial -out $TARGETDIR/server-cert.pem -extfile $TARGETDIR/extfile.cnf - - rm $TARGETDIR/server.csr $TARGETDIR/extfile.cnf $TARGETDIR/ca.srl - chmod 0400 $TARGETDIR/server-key.pem - chmod 0444 $TARGETDIR/server-cert.pem -} - -function createClientCert { - checkCAFilesExist - - openssl genrsa -out $TARGETDIR/client-key.pem 4096 - openssl req -subj "/CN=$NAME" -new -key $TARGETDIR/client-key.pem -out $TARGETDIR/client.csr - echo "extendedKeyUsage = clientAuth" > $TARGETDIR/extfile.cnf - openssl x509 -passin pass:$PASSWORD -req -days $EXPIRATIONDAYS -in $TARGETDIR/client.csr -CA $TARGETDIR/ca.pem -CAkey $TARGETDIR/ca-key.pem -CAcreateserial -out $TARGETDIR/client-cert.pem -extfile $TARGETDIR/extfile.cnf - - rm $TARGETDIR/client.csr $TARGETDIR/extfile.cnf $TARGETDIR/ca.srl - chmod 0400 $TARGETDIR/client-key.pem - chmod 0444 $TARGETDIR/client-cert.pem - - mv $TARGETDIR/client-key.pem $TARGETDIR/client-$NAME-key.pem - mv $TARGETDIR/client-cert.pem $TARGETDIR/client-$NAME-cert.pem -} - - -if [[ -z $MODE || ($MODE != "ca" && -z $NAME) || -z $PASSWORD || -z $TARGETDIR ]]; then - usage -fi - -mkdir -p $TARGETDIR - -if [[ $MODE = "ca" ]]; then - createCA -elif [[ $MODE = "server" ]]; then - createServerCert -elif [[ $MODE = "client" ]]; then - createClientCert -elif [[ $MODE = "tls" ]]; then - createTLSCert -else - usage -fi diff --git a/examples/leaks/example1/deployments/scripts/generate-env.sh b/examples/leaks/example1/deployments/scripts/generate-env.sh deleted file mode 100755 index af5469cd1..000000000 --- a/examples/leaks/example1/deployments/scripts/generate-env.sh +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# horus client default environment variables -HORUS_CLIENT_REPO_URL="https://github.com/ZupIT/horus.git" -HORUS_CLIENT_REPO_BRANCH="poc-golang-gosec" -HORUS_CLIENT_API_ADDR="http://localhost:8888" -HORUS_CLIENT_API_USE_HTTPS="false" - -# Adding default envs vars to run be used by make run-client -echo "export HORUS_CLIENT_REPO_URL=\"$HORUS_CLIENT_REPO_URL\"" > .env -echo "export HORUS_CLIENT_REPO_BRANCH=\"$HORUS_CLIENT_REPO_BRANCH\"" >> .env -echo "export HORUS_CLIENT_API_ADDR=\"$HORUS_CLIENT_API_ADDR\"" >> .env -echo "export HORUS_CLIENT_API_USE_HTTPS=\"$HORUS_CLIENT_API_USE_HTTPS\"" >> .env diff --git a/examples/leaks/example1/deployments/scripts/generate-local-token.sh b/examples/leaks/example1/deployments/scripts/generate-local-token.sh deleted file mode 100755 index a4bec1f2c..000000000 --- a/examples/leaks/example1/deployments/scripts/generate-local-token.sh +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -printf "Generating Local Token ..." && sleep 60 - -token=$(curl -s -H "Content-Type: application/json" -H "Authorization: Basic aHVza3lDSVVzZXI6aHVza3lDSVBhc3N3b3Jk" http://localhost:8888/api/1.0/token -X POST -d '{"repositoryURL": "https://github.com/ZupIT/horus.git"}' | awk -F '"' '{print $4}') - -if [ $? -eq 0 ]; then - echo " done" -else - echo " error. Try running make generate-local-token" -fi - -echo "export HORUS_CLIENT_TOKEN=\"$token\"" >> .env diff --git a/examples/leaks/example1/deployments/scripts/push-containers.sh b/examples/leaks/example1/deployments/scripts/push-containers.sh deleted file mode 100755 index 461c58da9..000000000 --- a/examples/leaks/example1/deployments/scripts/push-containers.sh +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -banditVersion=$(docker run --rm horus/bandit:latest bandit --version | grep bandit | awk -F " " '{print $2}') -brakemanVersion=$(docker run --rm horus/brakeman:latest brakeman --version | awk -F " " '{print $2}') -enryVersion=$(docker run --rm horus/enry:latest enry --version) -gitAuthorsVersion=$(docker run --rm horus/gitauthors:latest git --version | awk -F " " '{print $3}') -gosecVersion=$(curl -s https://api.github.com/repos/securego/gosec/releases/latest | grep "tag_name" | awk -F '"' '{print $4}') -npmAuditVersion=$(docker run --rm horus/npmaudit:latest npm audit --version) -yarnAuditVersion=$(docker run --rm horus/yarnaudit:latest yarn audit --version ) -safetyVersion=$(docker run --rm horus/safety:latest safety --version | awk -F " " '{print $3}') -gitleaksVersion=$(docker run --rm horus/gitleaks:latest gitleaks --version) -spotbugsVersion=$(docker run --rm horus/spotbugs:latest cat /opt/spotbugs/version) - -docker tag "horus/bandit:latest" "horus/bandit:$banditVersion" -docker tag "horus/brakeman:latest" "horus/brakeman:$brakemanVersion" -docker tag "horus/enry:latest" "horus/enry:$enryVersion" -docker tag "horus/gitauthors:latest" "horus/gitauthors:$gitAuthorsVersion" -docker tag "horus/gosec:latest" "horus/gosec:$gosecVersion" -docker tag "horus/npmaudit:latest" "horus/npmaudit:$npmAuditVersion" -docker tag "horus/yarnaudit:latest" "horus/yarnaudit:$yarnAuditVersion" -docker tag "horus/safety:latest" "horus/safety:$safetyVersion" -docker tag "horus/gitleaks:latest" "horus/gitleaks:$gitleaksVersion" -docker tag "horus/spotbugs:latest" "horus/spotbugs:$spotbugsVersion" - -docker push "horus/bandit:latest" && docker push "horus/bandit:$banditVersion" -docker push "horus/brakeman:latest" && docker push "horus/brakeman:$brakemanVersion" -docker push "horus/enry:latest" && docker push "horus/enry:$enryVersion" -docker push "horus/gitauthors:latest" && docker push "horus/gitauthors:$gitAuthorsVersion" -docker push "horus/gosec:latest" && docker push "horus/gosec:$gosecVersion" -docker push "horus/npmaudit:latest" && docker push "horus/npmaudit:$npmAuditVersion" -docker push "horus/yarnaudit:latest" && docker push "horus/yarnaudit:$yarnAuditVersion" -docker push "horus/safety:latest" && docker push "horus/safety:$safetyVersion" -docker push "horus/gitleaks:latest" && docker push "horus/gitleaks:$gitleaksVersion" -docker push "horus/spotbugs:latest" && docker push "horus/spotbugs:$spotbugsVersion" diff --git a/examples/leaks/example1/deployments/scripts/restart-huskyci-api.sh b/examples/leaks/example1/deployments/scripts/restart-huskyci-api.sh deleted file mode 100755 index 9b3f1546f..000000000 --- a/examples/leaks/example1/deployments/scripts/restart-huskyci-api.sh +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -docker stop horus_API > /dev/null -docker rm horus_API > /dev/null -cd deployments && docker-compose -f docker-compose.yml up -d --build --no-deps api -if [ $? -ne 0 ]; then - cd .. - exit 1; -fi -cd .. -while true; do - if [ "$(curl -s -k -L localhost:8888/healthcheck)" = "WORKING" ]; then - echo "horus_API is UP!" - break - else - echo "Waiting healthcheck..." - fi - sleep 15 -done diff --git a/examples/leaks/example1/deployments/scripts/run-create-certs.sh b/examples/leaks/example1/deployments/scripts/run-create-certs.sh deleted file mode 100755 index 2a25ca4de..000000000 --- a/examples/leaks/example1/deployments/scripts/run-create-certs.sh +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -printf 'Generating Certs ...' -rm -rf .env - -if [ ! -f api/api-tls-cert.pem ] && [ ! -f api/api-tls-key.pem ]; then - rm -rf deployments/certs/* - ./deployments/scripts/create-certs.sh -m ca -pw "horusCertPassphrase" -t deployments/certs -e 900 - ./deployments/scripts/create-certs.sh -m server -h dockerapi -pw "horusCertPassphrase" -t deployments/certs -e 365 - ./deployments/scripts/create-certs.sh -m client -h horusapi -pw "horusCertPassphrase" -t deployments/certs -e 365 - ./deployments/scripts/create-certs.sh -m tls -h dockerapi -pw "horusCertPassphrase" -t api -e 365 -fi - -echo " done" diff --git a/examples/leaks/example2/deployments/docker-compose.yaml b/examples/leaks/example2/deployments/docker-compose.yaml deleted file mode 100644 index 42a30bea6..000000000 --- a/examples/leaks/example2/deployments/docker-compose.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2020 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -version: '3' -services: - horusec-auth: - image: horuszup/horusec-auth:latest - restart: always - container_name: horusec-auth - network_mode: "host" - ports: - - "8006:8006" - - "8007:8007" - environment: - HORUSEC_DATABASE_SQL_URI: "postgresql://root:root@127.0.0.1:5432/horusec_db?sslmode=disable" - HORUSEC_DATABASE_SQL_DIALECT: "postgres" - HORUSEC_AUTH_TYPE: "horusec" diff --git a/examples/nginx/example1/server.nginx b/examples/nginx/example1/server.nginx deleted file mode 100644 index 2598ec812..000000000 --- a/examples/nginx/example1/server.nginx +++ /dev/null @@ -1,130 +0,0 @@ -user www www; - -worker_processes 2; - -pid /var/run/nginx.pid; - -# [ debug | info | notice | warn | error | crit ] - -error_log /var/log/nginx.error_log info; - -events { - worker_connections 2000; - - # use [ kqueue | epoll | /dev/poll | select | poll ]; - use kqueue; -} - -http { - include conf/mime.types; - default_type application/octet-stream; - - - log_format main '$remote_addr - $remote_user [$time_local] ' - '"$request" $status $bytes_sent ' - '"$http_referer" "$http_user_agent" ' - '"$gzip_ratio"'; - - log_format download '$remote_addr - $remote_user [$time_local] ' - '"$request" $status $bytes_sent ' - '"$http_referer" "$http_user_agent" ' - '"$http_range" "$sent_http_content_range"'; - - client_header_timeout 3m; - client_body_timeout 3m; - send_timeout 3m; - - client_header_buffer_size 1k; - large_client_header_buffers 4 4k; - - gzip on; - gzip_min_length 1100; - gzip_buffers 4 8k; - gzip_types text/plain; - - output_buffers 1 32k; - postpone_output 1460; - - sendfile on; - tcp_nopush on; - tcp_nodelay on; - send_lowat 12000; - - keepalive_timeout 75 20; - - #lingering_time 30; - #lingering_timeout 10; - #reset_timedout_connection on; - - - server { - listen one.example.com; - server_name one.example.com www.one.example.com; - - access_log /var/log/nginx.access_log main; - - location / { - proxy_pass http://127.0.0.1/; - proxy_redirect off; - - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - - client_max_body_size 10m; - client_body_buffer_size 128k; - - client_body_temp_path /var/nginx/client_body_temp; - - proxy_connect_timeout 70; - proxy_send_timeout 90; - proxy_read_timeout 90; - proxy_send_lowat 12000; - - proxy_buffer_size 4k; - proxy_buffers 4 32k; - proxy_busy_buffers_size 64k; - proxy_temp_file_write_size 64k; - - proxy_temp_path /var/nginx/proxy_temp; - - charset koi8-r; - } - - error_page 404 /404.html; - - location = /404.html { - root /spool/www; - } - - location /old_stuff/ { - rewrite ^/old_stuff/(.*)$ /new_stuff/$1 permanent; - } - - location /download/ { - - valid_referers none blocked server_names *.example.com; - - if ($invalid_referer) { - #rewrite ^/ http://www.example.com/; - return 403; - } - - #rewrite_log on; - - # rewrite /download/*/mp3/*.any_ext to /download/*/mp3/*.mp3 - rewrite ^/(download/.*)/mp3/(.*)\..*$ - /$1/mp3/$2.mp3 break; - - root /spool/www; - #autoindex on; - access_log /var/log/nginx-download.access_log download; - } - - location ~* \.(jpg|jpeg|gif)$ { - root /spool/www; - access_log off; - expires 30d; - } - } -} \ No newline at end of file diff --git a/examples/php/example1/wp-config.php b/examples/php/example1/wp-config.php deleted file mode 100644 index f6d2c2100..000000000 --- a/examples/php/example1/wp-config.php +++ /dev/null @@ -1,90 +0,0 @@ - 6.0.0' -# Use sqlite3 as the database for Active Record -gem 'sqlite3', '~> 1.4' -# Use Puma as the app server -gem 'puma', '~> 3.11' -# Use SCSS for stylesheets -gem 'sass-rails', '~> 5' -# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker -gem 'webpacker', '~> 4.0' -# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks -gem 'turbolinks', '~> 5' -# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder -gem 'jbuilder', '~> 2.7' -# Use Redis adapter to run Action Cable in production -# gem 'redis', '~> 4.0' -# Use Active Model has_secure_password -# gem 'bcrypt', '~> 3.1.7' - -# Use Active Storage variant -# gem 'image_processing', '~> 1.2' - -# Reduces boot times through caching; required in config/boot.rb -gem 'bootsnap', '>= 1.4.2', require: false - -group :development, :test do - # Call 'byebug' anywhere in the code to stop execution and get a debugger console - gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] -end - -group :development do - # Access an interactive console on exception pages or by calling 'console' anywhere in the code. - gem 'web-console', '>= 3.3.0' - gem 'listen', '>= 3.0.5', '< 3.2' - # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring - gem 'spring' - gem 'spring-watcher-listen', '~> 2.0.0' -end - -group :test do - # Adds support for Capybara system testing and selenium driver - gem 'capybara', '>= 2.15' - gem 'selenium-webdriver' - # Easy installation and use of web drivers to run system tests with browsers - gem 'webdrivers' -end - -# Windows does not include zoneinfo files, so bundle the tzinfo-data gem -gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/examples/ruby/example1/Gemfile.lock b/examples/ruby/example1/Gemfile.lock deleted file mode 100644 index 6851fa5ef..000000000 --- a/examples/ruby/example1/Gemfile.lock +++ /dev/null @@ -1,226 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - actioncable (6.0.0) - actionpack (= 6.0.0) - nio4r (~> 2.0) - websocket-driver (>= 0.6.1) - actionmailbox (6.0.0) - actionpack (= 6.0.0) - activejob (= 6.0.0) - activerecord (= 6.0.0) - activestorage (= 6.0.0) - activesupport (= 6.0.0) - mail (>= 2.7.1) - actionmailer (6.0.0) - actionpack (= 6.0.0) - actionview (= 6.0.0) - activejob (= 6.0.0) - mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 2.0) - actionpack (6.0.0) - actionview (= 6.0.0) - activesupport (= 6.0.0) - rack (~> 2.0) - rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.0) - actionpack (= 6.0.0) - activerecord (= 6.0.0) - activestorage (= 6.0.0) - activesupport (= 6.0.0) - nokogiri (>= 1.8.5) - actionview (6.0.0) - activesupport (= 6.0.0) - builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.0.0) - activesupport (= 6.0.0) - globalid (>= 0.3.6) - activemodel (6.0.0) - activesupport (= 6.0.0) - activerecord (6.0.0) - activemodel (= 6.0.0) - activesupport (= 6.0.0) - activestorage (6.0.0) - actionpack (= 6.0.0) - activejob (= 6.0.0) - activerecord (= 6.0.0) - marcel (~> 0.3.1) - activesupport (6.0.0) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - zeitwerk (~> 2.1, >= 2.1.8) - addressable (2.6.0) - public_suffix (>= 2.0.2, < 4.0) - bindex (0.8.1) - bootsnap (1.4.4) - msgpack (~> 1.0) - builder (3.2.3) - byebug (11.0.1) - capybara (3.28.0) - addressable - mini_mime (>= 0.1.3) - nokogiri (~> 1.8) - rack (>= 1.6.0) - rack-test (>= 0.6.3) - regexp_parser (~> 1.5) - xpath (~> 3.2) - childprocess (1.0.1) - rake (< 13.0) - concurrent-ruby (1.1.5) - crass (1.0.4) - erubi (1.8.0) - ffi (1.11.1) - globalid (0.4.2) - activesupport (>= 4.2.0) - i18n (1.6.0) - concurrent-ruby (~> 1.0) - jbuilder (2.9.1) - activesupport (>= 4.2.0) - listen (3.1.5) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - ruby_dep (~> 1.2) - loofah (2.2.3) - crass (~> 1.0.2) - nokogiri (>= 1.5.9) - mail (2.7.1) - mini_mime (>= 0.1.1) - marcel (0.3.3) - mimemagic (~> 0.3.2) - method_source (0.9.2) - mimemagic (0.3.3) - mini_mime (1.0.2) - mini_portile2 (2.4.0) - minitest (5.11.3) - msgpack (1.3.1) - nio4r (2.4.0) - nokogiri (1.10.4) - mini_portile2 (~> 2.4.0) - public_suffix (3.1.1) - puma (3.12.1) - rack (2.0.7) - rack-proxy (0.6.5) - rack - rack-test (1.1.0) - rack (>= 1.0, < 3) - rails (6.0.0) - actioncable (= 6.0.0) - actionmailbox (= 6.0.0) - actionmailer (= 6.0.0) - actionpack (= 6.0.0) - actiontext (= 6.0.0) - actionview (= 6.0.0) - activejob (= 6.0.0) - activemodel (= 6.0.0) - activerecord (= 6.0.0) - activestorage (= 6.0.0) - activesupport (= 6.0.0) - bundler (>= 1.3.0) - railties (= 6.0.0) - sprockets-rails (>= 2.0.0) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) - nokogiri (>= 1.6) - rails-html-sanitizer (1.2.0) - loofah (~> 2.2, >= 2.2.2) - railties (6.0.0) - actionpack (= 6.0.0) - activesupport (= 6.0.0) - method_source - rake (>= 0.8.7) - thor (>= 0.20.3, < 2.0) - rake (12.3.3) - rb-fsevent (0.10.3) - rb-inotify (0.10.0) - ffi (~> 1.0) - regexp_parser (1.6.0) - ruby_dep (1.5.0) - rubyzip (1.2.3) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sass-rails (5.1.0) - railties (>= 5.2.0) - sass (~> 3.1) - sprockets (>= 2.8, < 4.0) - sprockets-rails (>= 2.0, < 4.0) - tilt (>= 1.1, < 3) - selenium-webdriver (3.142.3) - childprocess (>= 0.5, < 2.0) - rubyzip (~> 1.2, >= 1.2.2) - spring (2.1.0) - spring-watcher-listen (2.0.1) - listen (>= 2.7, < 4.0) - spring (>= 1.2, < 3.0) - sprockets (3.7.2) - concurrent-ruby (~> 1.0) - rack (> 1, < 3) - sprockets-rails (3.2.1) - actionpack (>= 4.0) - activesupport (>= 4.0) - sprockets (>= 3.0.0) - sqlite3 (1.4.1) - thor (0.20.3) - thread_safe (0.3.6) - tilt (2.0.9) - turbolinks (5.2.0) - turbolinks-source (~> 5.2) - turbolinks-source (5.2.0) - tzinfo (1.2.5) - thread_safe (~> 0.1) - web-console (4.0.1) - actionview (>= 6.0.0) - activemodel (>= 6.0.0) - bindex (>= 0.4.0) - railties (>= 6.0.0) - webdrivers (4.1.2) - nokogiri (~> 1.6) - rubyzip (~> 1.0) - selenium-webdriver (>= 3.0, < 4.0) - webpacker (4.0.7) - activesupport (>= 4.2) - rack-proxy (>= 0.6.1) - railties (>= 4.2) - websocket-driver (0.7.1) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.4) - xpath (3.2.0) - nokogiri (~> 1.8) - zeitwerk (2.1.9) - -PLATFORMS - ruby - -DEPENDENCIES - bootsnap (>= 1.4.2) - byebug - capybara (>= 2.15) - jbuilder (~> 2.7) - listen (>= 3.0.5, < 3.2) - puma (~> 3.11) - rails (~> 6.0.0) - sass-rails (~> 5) - selenium-webdriver - spring - spring-watcher-listen (~> 2.0.0) - sqlite3 (~> 1.4) - turbolinks (~> 5) - tzinfo-data - web-console (>= 3.3.0) - webdrivers - webpacker (~> 4.0) - -RUBY VERSION - ruby 2.6.3p62 - -BUNDLED WITH - 1.17.2 diff --git a/examples/ruby/example1/README.md b/examples/ruby/example1/README.md deleted file mode 100644 index 7db80e4ca..000000000 --- a/examples/ruby/example1/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# README - -This README would normally document whatever steps are necessary to get the -application up and running. - -Things you may want to cover: - -* Ruby version - -* System dependencies - -* Configuration - -* Database creation - -* Database initialization - -* How to run the test suite - -* Services (job queues, cache servers, search engines, etc.) - -* Deployment instructions - -* ... diff --git a/examples/ruby/example1/Rakefile b/examples/ruby/example1/Rakefile deleted file mode 100644 index 9a5ea7383..000000000 --- a/examples/ruby/example1/Rakefile +++ /dev/null @@ -1,6 +0,0 @@ -# Add your own tasks in files placed in lib/tasks ending in .rake, -# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. - -require_relative "config/application" - -Rails.application.load_tasks diff --git a/examples/ruby/example1/app/assets/config/manifest.js b/examples/ruby/example1/app/assets/config/manifest.js deleted file mode 100644 index 75bdf523a..000000000 --- a/examples/ruby/example1/app/assets/config/manifest.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -//= link_tree ../images -//= link_directory ../stylesheets .css diff --git a/examples/ruby/example1/app/assets/images/.keep b/examples/ruby/example1/app/assets/images/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/app/assets/stylesheets/application.css b/examples/ruby/example1/app/assets/stylesheets/application.css deleted file mode 100644 index d05ea0f51..000000000 --- a/examples/ruby/example1/app/assets/stylesheets/application.css +++ /dev/null @@ -1,15 +0,0 @@ -/* - * This is a manifest file that'll be compiled into application.css, which will include all the files - * listed below. - * - * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's - * vendor/assets/stylesheets directory can be referenced here using a relative path. - * - * You're free to add application-wide styles to this file and they'll appear at the bottom of the - * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS - * files in this directory. Styles in this file should be added after the last require_* statement. - * It is generally better to create a new file per style scope. - * - *= require_tree . - *= require_self - */ diff --git a/examples/ruby/example1/app/channels/application_cable/channel.rb b/examples/ruby/example1/app/channels/application_cable/channel.rb deleted file mode 100644 index d67269728..000000000 --- a/examples/ruby/example1/app/channels/application_cable/channel.rb +++ /dev/null @@ -1,4 +0,0 @@ -module ApplicationCable - class Channel < ActionCable::Channel::Base - end -end diff --git a/examples/ruby/example1/app/channels/application_cable/connection.rb b/examples/ruby/example1/app/channels/application_cable/connection.rb deleted file mode 100644 index 0ff5442f4..000000000 --- a/examples/ruby/example1/app/channels/application_cable/connection.rb +++ /dev/null @@ -1,4 +0,0 @@ -module ApplicationCable - class Connection < ActionCable::Connection::Base - end -end diff --git a/examples/ruby/example1/app/controllers/application_controller.rb b/examples/ruby/example1/app/controllers/application_controller.rb deleted file mode 100644 index 920cbc015..000000000 --- a/examples/ruby/example1/app/controllers/application_controller.rb +++ /dev/null @@ -1,5 +0,0 @@ -class ApplicationController < ActionController::Base - def test(options) - system("ls #{options}") - end -end diff --git a/examples/ruby/example1/app/controllers/concerns/.keep b/examples/ruby/example1/app/controllers/concerns/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/app/helpers/application_helper.rb b/examples/ruby/example1/app/helpers/application_helper.rb deleted file mode 100644 index de6be7945..000000000 --- a/examples/ruby/example1/app/helpers/application_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module ApplicationHelper -end diff --git a/examples/ruby/example1/app/javascript/channels/consumer.js b/examples/ruby/example1/app/javascript/channels/consumer.js deleted file mode 100644 index cab6cff54..000000000 --- a/examples/ruby/example1/app/javascript/channels/consumer.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Action Cable provides the framework to deal with WebSockets in Rails. -// You can generate new channels where WebSocket features live using the `bin/rails generate channel` command. - -import { createConsumer } from "@rails/actioncable" - -export default createConsumer() diff --git a/examples/ruby/example1/app/javascript/channels/index.js b/examples/ruby/example1/app/javascript/channels/index.js deleted file mode 100644 index bbfd277f4..000000000 --- a/examples/ruby/example1/app/javascript/channels/index.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// Load all the channels within this directory and all subdirectories. -// Channel files must be named *_channel.js. - -const channels = require.context('.', true, /_channel\.js$/) -channels.keys().forEach(channels) diff --git a/examples/ruby/example1/app/javascript/packs/application.js b/examples/ruby/example1/app/javascript/packs/application.js deleted file mode 100644 index adf041a57..000000000 --- a/examples/ruby/example1/app/javascript/packs/application.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// This file is automatically compiled by Webpack, along with any other files -// present in this directory. You're encouraged to place your actual application logic in -// a relevant structure within app/javascript and only use these pack files to reference -// that code so it'll be compiled. - -import Rails from "@rails/ujs" -import Turbolinks from "turbolinks" -import * as ActiveStorage from "@rails/activestorage" -import "channels" - -Rails.start() -Turbolinks.start() -ActiveStorage.start() diff --git a/examples/ruby/example1/app/jobs/application_job.rb b/examples/ruby/example1/app/jobs/application_job.rb deleted file mode 100644 index d394c3d10..000000000 --- a/examples/ruby/example1/app/jobs/application_job.rb +++ /dev/null @@ -1,7 +0,0 @@ -class ApplicationJob < ActiveJob::Base - # Automatically retry jobs that encountered a deadlock - # retry_on ActiveRecord::Deadlocked - - # Most jobs are safe to ignore if the underlying records are no longer available - # discard_on ActiveJob::DeserializationError -end diff --git a/examples/ruby/example1/app/mailers/application_mailer.rb b/examples/ruby/example1/app/mailers/application_mailer.rb deleted file mode 100644 index 286b2239d..000000000 --- a/examples/ruby/example1/app/mailers/application_mailer.rb +++ /dev/null @@ -1,4 +0,0 @@ -class ApplicationMailer < ActionMailer::Base - default from: 'from@example.com' - layout 'mailer' -end diff --git a/examples/ruby/example1/app/models/application_record.rb b/examples/ruby/example1/app/models/application_record.rb deleted file mode 100644 index 10a4cba84..000000000 --- a/examples/ruby/example1/app/models/application_record.rb +++ /dev/null @@ -1,3 +0,0 @@ -class ApplicationRecord < ActiveRecord::Base - self.abstract_class = true -end diff --git a/examples/ruby/example1/app/models/concerns/.keep b/examples/ruby/example1/app/models/concerns/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/app/views/layouts/application.html.erb b/examples/ruby/example1/app/views/layouts/application.html.erb deleted file mode 100644 index 55bf5e5f9..000000000 --- a/examples/ruby/example1/app/views/layouts/application.html.erb +++ /dev/null @@ -1,16 +0,0 @@ - - - - Example1 - - <%= csrf_meta_tags %> - <%= csp_meta_tag %> - - <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> - <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> - - - - <%= yield %> - - diff --git a/examples/ruby/example1/app/views/layouts/mailer.html.erb b/examples/ruby/example1/app/views/layouts/mailer.html.erb deleted file mode 100644 index cbd34d2e9..000000000 --- a/examples/ruby/example1/app/views/layouts/mailer.html.erb +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - <%= yield %> - - diff --git a/examples/ruby/example1/app/views/layouts/mailer.text.erb b/examples/ruby/example1/app/views/layouts/mailer.text.erb deleted file mode 100644 index 37f0bddbd..000000000 --- a/examples/ruby/example1/app/views/layouts/mailer.text.erb +++ /dev/null @@ -1 +0,0 @@ -<%= yield %> diff --git a/examples/ruby/example1/config.ru b/examples/ruby/example1/config.ru deleted file mode 100644 index 4a3c09a68..000000000 --- a/examples/ruby/example1/config.ru +++ /dev/null @@ -1,6 +0,0 @@ -# This file is used by Rack-based servers to start the application. - -require_relative "config/environment" - -run Rails.application -Rails.application.load_server diff --git a/examples/ruby/example1/config/application.rb b/examples/ruby/example1/config/application.rb deleted file mode 100644 index deb91bca6..000000000 --- a/examples/ruby/example1/config/application.rb +++ /dev/null @@ -1,22 +0,0 @@ -require_relative "boot" - -require "rails/all" - -# Require the gems listed in Gemfile, including any gems -# you've limited to :test, :development, or :production. -Bundler.require(*Rails.groups) - -module Example1 - class Application < Rails::Application - # Initialize configuration defaults for originally generated Rails version. - config.load_defaults 6.1 - - # Configuration for the application, engines, and railties goes here. - # - # These settings can be overridden in specific environments using the files - # in config/environments, which are processed later. - # - # config.time_zone = "Central Time (US & Canada)" - # config.eager_load_paths << Rails.root.join("extras") - end -end diff --git a/examples/ruby/example1/config/boot.rb b/examples/ruby/example1/config/boot.rb deleted file mode 100644 index 3cda23b4d..000000000 --- a/examples/ruby/example1/config/boot.rb +++ /dev/null @@ -1,4 +0,0 @@ -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) - -require "bundler/setup" # Set up gems listed in the Gemfile. -require "bootsnap/setup" # Speed up boot time by caching expensive operations. diff --git a/examples/ruby/example1/config/cable.yml b/examples/ruby/example1/config/cable.yml deleted file mode 100644 index 81ed76903..000000000 --- a/examples/ruby/example1/config/cable.yml +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -development: - adapter: async - -test: - adapter: test - -production: - adapter: redis - url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> - channel_prefix: example1_production diff --git a/examples/ruby/example1/config/credentials.yml.enc b/examples/ruby/example1/config/credentials.yml.enc deleted file mode 100644 index e68c4c380..000000000 --- a/examples/ruby/example1/config/credentials.yml.enc +++ /dev/null @@ -1 +0,0 @@ -77SO49WB4B1wr13dbPkuNoAGzErfg3VNfBURFfZ3pamqqZihn6Vkp9KZtgYXpz9W2ROo3wBRqL+uhx8VAjvmph6ckKlt1/zFE61l4HYoLPPkk2WIb6h0hDiaQjvna6VZJy+PRDnDroTcS5Q1MUatgyKXXBlcFB9UnA30N6XFGkF4EMCSUdFvpREahZFfr6kPTU53kR6vALnHXI7Fi0WlckCLPAJN57GxLOWwEGNRLLLF0BSSiSkeuNpnJhi6irChgVHgvZDfPt/PUgGhvoRmGgEVkH5XAHueZOfsardUxz8Ygyoux65LhvUrEYHlzGS1bSfFJK//OIIH777/55eNFbkH/E5Nlr1L772cVqhIoiGniMpVcGhw6OhhXz1Ihl4SvWrWODmbTjzhKtj7Ypw9bbJ6/ry38Ig1t6/I--WBb2lf8sKgs7DLZq--yEdYTXsqcLqgIoIbpYkJMg== \ No newline at end of file diff --git a/examples/ruby/example1/config/database.yml b/examples/ruby/example1/config/database.yml deleted file mode 100644 index 867cba832..000000000 --- a/examples/ruby/example1/config/database.yml +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# SQLite. Versions 3.8.0 and up are supported. -# gem install sqlite3 -# -# Ensure the SQLite 3 gem is defined in your Gemfile -# gem 'sqlite3' -# -default: &default - adapter: sqlite3 - pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> - timeout: 5000 - -development: - <<: *default - database: db/development.sqlite3 - -# Warning: The database defined as "test" will be erased and -# re-generated from your development database when you run "rake". -# Do not set this db to the same as development or production. -test: - <<: *default - database: db/test.sqlite3 - -production: - <<: *default - database: db/production.sqlite3 diff --git a/examples/ruby/example1/config/environment.rb b/examples/ruby/example1/config/environment.rb deleted file mode 100644 index cac531577..000000000 --- a/examples/ruby/example1/config/environment.rb +++ /dev/null @@ -1,5 +0,0 @@ -# Load the Rails application. -require_relative "application" - -# Initialize the Rails application. -Rails.application.initialize! diff --git a/examples/ruby/example1/config/environments/development.rb b/examples/ruby/example1/config/environments/development.rb deleted file mode 100644 index 7a9f6c3a8..000000000 --- a/examples/ruby/example1/config/environments/development.rb +++ /dev/null @@ -1,76 +0,0 @@ -require "active_support/core_ext/integer/time" - -Rails.application.configure do - # Settings specified here will take precedence over those in config/application.rb. - - # In the development environment your application's code is reloaded any time - # it changes. This slows down response time but is perfect for development - # since you don't have to restart the web server when you make code changes. - config.cache_classes = false - - # Do not eager load code on boot. - config.eager_load = false - - # Show full error reports. - config.consider_all_requests_local = true - - # Enable/disable caching. By default caching is disabled. - # Run rails dev:cache to toggle caching. - if Rails.root.join('tmp', 'caching-dev.txt').exist? - config.action_controller.perform_caching = true - config.action_controller.enable_fragment_cache_logging = true - - config.cache_store = :memory_store - config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{2.days.to_i}" - } - else - config.action_controller.perform_caching = false - - config.cache_store = :null_store - end - - # Store uploaded files on the local file system (see config/storage.yml for options). - config.active_storage.service = :local - - # Don't care if the mailer can't send. - config.action_mailer.raise_delivery_errors = false - - config.action_mailer.perform_caching = false - - # Print deprecation notices to the Rails logger. - config.active_support.deprecation = :log - - # Raise exceptions for disallowed deprecations. - config.active_support.disallowed_deprecation = :raise - - # Tell Active Support which deprecation messages to disallow. - config.active_support.disallowed_deprecation_warnings = [] - - # Raise an error on page load if there are pending migrations. - config.active_record.migration_error = :page_load - - # Highlight code that triggered database queries in logs. - config.active_record.verbose_query_logs = true - - # Debug mode disables concatenation and preprocessing of assets. - # This option may cause significant delays in view rendering with a large - # number of complex assets. - config.assets.debug = true - - # Suppress logger output for asset requests. - config.assets.quiet = true - - # Raises error for missing translations. - # config.i18n.raise_on_missing_translations = true - - # Annotate rendered view with file names. - # config.action_view.annotate_rendered_view_with_filenames = true - - # Use an evented file watcher to asynchronously detect changes in source code, - # routes, locales, etc. This feature depends on the listen gem. - config.file_watcher = ActiveSupport::EventedFileUpdateChecker - - # Uncomment if you wish to allow Action Cable access from any origin. - # config.action_cable.disable_request_forgery_protection = true -end diff --git a/examples/ruby/example1/config/environments/production.rb b/examples/ruby/example1/config/environments/production.rb deleted file mode 100644 index b308d0e39..000000000 --- a/examples/ruby/example1/config/environments/production.rb +++ /dev/null @@ -1,120 +0,0 @@ -require "active_support/core_ext/integer/time" - -Rails.application.configure do - # Settings specified here will take precedence over those in config/application.rb. - - # Code is not reloaded between requests. - config.cache_classes = true - - # Eager load code on boot. This eager loads most of Rails and - # your application in memory, allowing both threaded web servers - # and those relying on copy on write to perform better. - # Rake tasks automatically ignore this option for performance. - config.eager_load = true - - # Full error reports are disabled and caching is turned on. - config.consider_all_requests_local = false - config.action_controller.perform_caching = true - - # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] - # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). - # config.require_master_key = true - - # Disable serving static files from the `/public` folder by default since - # Apache or NGINX already handles this. - config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? - - # Compress CSS using a preprocessor. - # config.assets.css_compressor = :sass - - # Do not fallback to assets pipeline if a precompiled asset is missed. - config.assets.compile = false - - # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.asset_host = 'http://assets.example.com' - - # Specifies the header that your server uses for sending files. - # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache - # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX - - # Store uploaded files on the local file system (see config/storage.yml for options). - config.active_storage.service = :local - - # 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.*/ ] - - # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. - # config.force_ssl = true - - # Include generic and useful information about system operation, but avoid logging too much - # information to avoid inadvertent exposure of personally identifiable information (PII). - config.log_level = :info - - # Prepend all log lines with the following tags. - config.log_tags = [ :request_id ] - - # Use a different cache store in production. - # config.cache_store = :mem_cache_store - - # Use a real queuing backend for Active Job (and separate queues per environment). - # config.active_job.queue_adapter = :resque - # config.active_job.queue_name_prefix = "example1_production" - - config.action_mailer.perform_caching = false - - # Ignore bad email addresses and do not raise email delivery errors. - # Set this to true and configure the email server for immediate delivery to raise delivery errors. - # config.action_mailer.raise_delivery_errors = false - - # Enable locale fallbacks for I18n (makes lookups for any locale fall back to - # the I18n.default_locale when a translation cannot be found). - config.i18n.fallbacks = true - - # Send deprecation notices to registered listeners. - config.active_support.deprecation = :notify - - # Log disallowed deprecations. - config.active_support.disallowed_deprecation = :log - - # Tell Active Support which deprecation messages to disallow. - config.active_support.disallowed_deprecation_warnings = [] - - # Use default logging formatter so that PID and timestamp are not suppressed. - config.log_formatter = ::Logger::Formatter.new - - # Use a different logger for distributed setups. - # require "syslog/logger" - # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') - - if ENV["RAILS_LOG_TO_STDOUT"].present? - logger = ActiveSupport::Logger.new(STDOUT) - logger.formatter = config.log_formatter - config.logger = ActiveSupport::TaggedLogging.new(logger) - end - - # Do not dump schema after migrations. - config.active_record.dump_schema_after_migration = false - - # Inserts middleware to perform automatic connection switching. - # The `database_selector` hash is used to pass options to the DatabaseSelector - # middleware. The `delay` is used to determine how long to wait after a write - # to send a subsequent read to the primary. - # - # The `database_resolver` class is used by the middleware to determine which - # database is appropriate to use based on the time delay. - # - # The `database_resolver_context` class is used by the middleware to set - # timestamps for the last write to the primary. The resolver uses the context - # class timestamps to determine how long to wait before reading from the - # replica. - # - # By default Rails will store a last write timestamp in the session. The - # DatabaseSelector middleware is designed as such you can define your own - # strategy for connection switching and pass that into the middleware through - # these configuration options. - # config.active_record.database_selector = { delay: 2.seconds } - # config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver - # config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session -end diff --git a/examples/ruby/example1/config/environments/test.rb b/examples/ruby/example1/config/environments/test.rb deleted file mode 100644 index 93ed4f1b7..000000000 --- a/examples/ruby/example1/config/environments/test.rb +++ /dev/null @@ -1,60 +0,0 @@ -require "active_support/core_ext/integer/time" - -# The test environment is used exclusively to run your application's -# test suite. You never need to work with it otherwise. Remember that -# your test database is "scratch space" for the test suite and is wiped -# and recreated between test runs. Don't rely on the data there! - -Rails.application.configure do - # Settings specified here will take precedence over those in config/application.rb. - - config.cache_classes = false - config.action_view.cache_template_loading = true - - # Do not eager load code on boot. This avoids loading your whole application - # just for the purpose of running a single test. If you are using a tool that - # preloads Rails for running tests, you may have to set it to true. - config.eager_load = false - - # Configure public file server for tests with Cache-Control for performance. - config.public_file_server.enabled = true - config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{1.hour.to_i}" - } - - # Show full error reports and disable caching. - config.consider_all_requests_local = true - config.action_controller.perform_caching = false - config.cache_store = :null_store - - # Raise exceptions instead of rendering exception templates. - config.action_dispatch.show_exceptions = false - - # Disable request forgery protection in test environment. - config.action_controller.allow_forgery_protection = false - - # Store uploaded files on the local file system in a temporary directory. - config.active_storage.service = :test - - config.action_mailer.perform_caching = false - - # Tell Action Mailer not to deliver emails to the real world. - # The :test delivery method accumulates sent emails in the - # ActionMailer::Base.deliveries array. - config.action_mailer.delivery_method = :test - - # Print deprecation notices to the stderr. - config.active_support.deprecation = :stderr - - # Raise exceptions for disallowed deprecations. - config.active_support.disallowed_deprecation = :raise - - # Tell Active Support which deprecation messages to disallow. - config.active_support.disallowed_deprecation_warnings = [] - - # Raises error for missing translations. - # config.i18n.raise_on_missing_translations = true - - # Annotate rendered view with file names. - # config.action_view.annotate_rendered_view_with_filenames = true -end diff --git a/examples/ruby/example1/config/initializers/application_controller_renderer.rb b/examples/ruby/example1/config/initializers/application_controller_renderer.rb deleted file mode 100644 index 89d2efab2..000000000 --- a/examples/ruby/example1/config/initializers/application_controller_renderer.rb +++ /dev/null @@ -1,8 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# ActiveSupport::Reloader.to_prepare do -# ApplicationController.renderer.defaults.merge!( -# http_host: 'example.org', -# https: false -# ) -# end diff --git a/examples/ruby/example1/config/initializers/assets.rb b/examples/ruby/example1/config/initializers/assets.rb deleted file mode 100644 index 4b828e80c..000000000 --- a/examples/ruby/example1/config/initializers/assets.rb +++ /dev/null @@ -1,14 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Version of your assets, change this if you want to expire all your assets. -Rails.application.config.assets.version = '1.0' - -# Add additional assets to the asset load path. -# Rails.application.config.assets.paths << Emoji.images_path -# Add Yarn node_modules folder to the asset load path. -Rails.application.config.assets.paths << Rails.root.join('node_modules') - -# Precompile additional assets. -# application.js, application.css, and all non-JS/CSS in the app/assets -# folder are already added. -# Rails.application.config.assets.precompile += %w( admin.js admin.css ) diff --git a/examples/ruby/example1/config/initializers/backtrace_silencers.rb b/examples/ruby/example1/config/initializers/backtrace_silencers.rb deleted file mode 100644 index 33699c309..000000000 --- a/examples/ruby/example1/config/initializers/backtrace_silencers.rb +++ /dev/null @@ -1,8 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. -# Rails.backtrace_cleaner.add_silencer { |line| /my_noisy_library/.match?(line) } - -# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code -# by setting BACKTRACE=1 before calling your invocation, like "BACKTRACE=1 ./bin/rails runner 'MyClass.perform'". -Rails.backtrace_cleaner.remove_silencers! if ENV["BACKTRACE"] diff --git a/examples/ruby/example1/config/initializers/content_security_policy.rb b/examples/ruby/example1/config/initializers/content_security_policy.rb deleted file mode 100644 index 35d0f26fc..000000000 --- a/examples/ruby/example1/config/initializers/content_security_policy.rb +++ /dev/null @@ -1,30 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Define an application-wide content security policy -# For further information see the following documentation -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy - -# Rails.application.config.content_security_policy do |policy| -# policy.default_src :self, :https -# policy.font_src :self, :https, :data -# policy.img_src :self, :https, :data -# policy.object_src :none -# policy.script_src :self, :https -# policy.style_src :self, :https -# # If you are using webpack-dev-server then specify webpack-dev-server host -# policy.connect_src :self, :https, "http://localhost:3035", "ws://localhost:3035" if Rails.env.development? - -# # Specify URI for violation reports -# # policy.report_uri "/csp-violation-report-endpoint" -# end - -# If you are using UJS then enable automatic nonce generation -# Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } - -# Set the nonce only to specific directives -# Rails.application.config.content_security_policy_nonce_directives = %w(script-src) - -# Report CSP violations to a specified URI -# For further information see the following documentation: -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only -# Rails.application.config.content_security_policy_report_only = true diff --git a/examples/ruby/example1/config/initializers/cookies_serializer.rb b/examples/ruby/example1/config/initializers/cookies_serializer.rb deleted file mode 100644 index 5a6a32d37..000000000 --- a/examples/ruby/example1/config/initializers/cookies_serializer.rb +++ /dev/null @@ -1,5 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Specify a serializer for the signed and encrypted cookie jars. -# Valid options are :json, :marshal, and :hybrid. -Rails.application.config.action_dispatch.cookies_serializer = :json diff --git a/examples/ruby/example1/config/initializers/filter_parameter_logging.rb b/examples/ruby/example1/config/initializers/filter_parameter_logging.rb deleted file mode 100644 index 4b34a0366..000000000 --- a/examples/ruby/example1/config/initializers/filter_parameter_logging.rb +++ /dev/null @@ -1,6 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Configure sensitive parameters which will be filtered from the log file. -Rails.application.config.filter_parameters += [ - :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn -] diff --git a/examples/ruby/example1/config/initializers/inflections.rb b/examples/ruby/example1/config/initializers/inflections.rb deleted file mode 100644 index ac033bf9d..000000000 --- a/examples/ruby/example1/config/initializers/inflections.rb +++ /dev/null @@ -1,16 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Add new inflection rules using the following format. Inflections -# are locale specific, and you may define rules for as many different -# locales as you wish. All of these examples are active by default: -# ActiveSupport::Inflector.inflections(:en) do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person', 'people' -# inflect.uncountable %w( fish sheep ) -# end - -# These inflection rules are supported but not enabled by default: -# ActiveSupport::Inflector.inflections(:en) do |inflect| -# inflect.acronym 'RESTful' -# end diff --git a/examples/ruby/example1/config/initializers/mime_types.rb b/examples/ruby/example1/config/initializers/mime_types.rb deleted file mode 100644 index dc1899682..000000000 --- a/examples/ruby/example1/config/initializers/mime_types.rb +++ /dev/null @@ -1,4 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Add new mime types for use in respond_to blocks: -# Mime::Type.register "text/richtext", :rtf diff --git a/examples/ruby/example1/config/initializers/permissions_policy.rb b/examples/ruby/example1/config/initializers/permissions_policy.rb deleted file mode 100644 index 00f64d71b..000000000 --- a/examples/ruby/example1/config/initializers/permissions_policy.rb +++ /dev/null @@ -1,11 +0,0 @@ -# Define an application-wide HTTP permissions policy. For further -# information see https://developers.google.com/web/updates/2018/06/feature-policy -# -# Rails.application.config.permissions_policy do |f| -# f.camera :none -# f.gyroscope :none -# f.microphone :none -# f.usb :none -# f.fullscreen :self -# f.payment :self, "https://secure.example.com" -# end diff --git a/examples/ruby/example1/config/initializers/wrap_parameters.rb b/examples/ruby/example1/config/initializers/wrap_parameters.rb deleted file mode 100644 index bbfc3961b..000000000 --- a/examples/ruby/example1/config/initializers/wrap_parameters.rb +++ /dev/null @@ -1,14 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# This file contains settings for ActionController::ParamsWrapper which -# is enabled by default. - -# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. -ActiveSupport.on_load(:action_controller) do - wrap_parameters format: [:json] -end - -# To enable root element in JSON for ActiveRecord objects. -# ActiveSupport.on_load(:active_record) do -# self.include_root_in_json = true -# end diff --git a/examples/ruby/example1/config/locales/en.yml b/examples/ruby/example1/config/locales/en.yml deleted file mode 100644 index b9d4631ef..000000000 --- a/examples/ruby/example1/config/locales/en.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Files in the config/locales directory are used for internationalization -# and are automatically loaded by Rails. If you want to use locales other -# than English, add the necessary files in this directory. -# -# To use the locales, use `I18n.t`: -# -# I18n.t 'hello' -# -# In views, this is aliased to just `t`: -# -# <%= t('hello') %> -# -# To use a different locale, set it with `I18n.locale`: -# -# I18n.locale = :es -# -# This would use the information in config/locales/es.yml. -# -# The following keys must be escaped otherwise they will not be retrieved by -# the default I18n backend: -# -# true, false, on, off, yes, no -# -# Instead, surround them with single quotes. -# -# en: -# 'true': 'foo' -# -# To learn more, please read the Rails Internationalization guide -# available at https://guides.rubyonrails.org/i18n.html. - -en: - hello: "Hello world" diff --git a/examples/ruby/example1/config/master.key b/examples/ruby/example1/config/master.key deleted file mode 100644 index c253d9dd8..000000000 --- a/examples/ruby/example1/config/master.key +++ /dev/null @@ -1 +0,0 @@ -feb7ae26a2f68a502a61e9b646558144 \ No newline at end of file diff --git a/examples/ruby/example1/config/puma.rb b/examples/ruby/example1/config/puma.rb deleted file mode 100644 index d9b3e836c..000000000 --- a/examples/ruby/example1/config/puma.rb +++ /dev/null @@ -1,43 +0,0 @@ -# Puma can serve each request in a thread from an internal thread pool. -# The `threads` method setting takes two numbers: a minimum and maximum. -# Any libraries that use thread pools should be configured to match -# the maximum value specified for Puma. Default is set to 5 threads for minimum -# and maximum; this matches the default thread size of Active Record. -# -max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } -min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } -threads min_threads_count, max_threads_count - -# Specifies the `worker_timeout` threshold that Puma will use to wait before -# terminating a worker in development environments. -# -worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development" - -# Specifies the `port` that Puma will listen on to receive requests; default is 3000. -# -port ENV.fetch("PORT") { 3000 } - -# Specifies the `environment` that Puma will run in. -# -environment ENV.fetch("RAILS_ENV") { "development" } - -# Specifies the `pidfile` that Puma will use. -pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } - -# Specifies the number of `workers` to boot in clustered mode. -# Workers are forked web server processes. If using threads and workers together -# the concurrency of the application would be max `threads` * `workers`. -# Workers do not work on JRuby or Windows (both of which do not support -# processes). -# -# workers ENV.fetch("WEB_CONCURRENCY") { 2 } - -# Use the `preload_app!` method when specifying a `workers` number. -# This directive tells Puma to first boot the application and load code -# before forking the application. This takes advantage of Copy On Write -# process behavior so workers use less memory. -# -# preload_app! - -# Allow puma to be restarted by `rails restart` command. -plugin :tmp_restart diff --git a/examples/ruby/example1/config/routes.rb b/examples/ruby/example1/config/routes.rb deleted file mode 100644 index c06383a17..000000000 --- a/examples/ruby/example1/config/routes.rb +++ /dev/null @@ -1,3 +0,0 @@ -Rails.application.routes.draw do - # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html -end diff --git a/examples/ruby/example1/config/spring.rb b/examples/ruby/example1/config/spring.rb deleted file mode 100644 index db5bf1307..000000000 --- a/examples/ruby/example1/config/spring.rb +++ /dev/null @@ -1,6 +0,0 @@ -Spring.watch( - ".ruby-version", - ".rbenv-vars", - "tmp/restart.txt", - "tmp/caching-dev.txt" -) diff --git a/examples/ruby/example1/config/storage.yml b/examples/ruby/example1/config/storage.yml deleted file mode 100644 index fb34e6cc3..000000000 --- a/examples/ruby/example1/config/storage.yml +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -test: - service: Disk - root: <%= Rails.root.join("tmp/storage") %> - -local: - service: Disk - root: <%= Rails.root.join("storage") %> - -# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) -# amazon: -# service: S3 -# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> -# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> -# region: us-east-1 -# bucket: your_own_bucket - -# Remember not to checkin your GCS keyfile to a repository -# google: -# service: GCS -# project: your_project -# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> -# bucket: your_own_bucket - -# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) -# microsoft: -# service: AzureStorage -# storage_account_name: your_account_name -# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> -# container: your_container_name - -# mirror: -# service: Mirror -# primary: local -# mirrors: [ amazon, google, microsoft ] diff --git a/examples/ruby/example1/db/seeds.rb b/examples/ruby/example1/db/seeds.rb deleted file mode 100644 index f3a0480d1..000000000 --- a/examples/ruby/example1/db/seeds.rb +++ /dev/null @@ -1,7 +0,0 @@ -# This file should contain all the record creation needed to seed the database with its default values. -# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup). -# -# Examples: -# -# movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }]) -# Character.create(name: 'Luke', movie: movies.first) diff --git a/examples/ruby/example1/lib/assets/.keep b/examples/ruby/example1/lib/assets/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/lib/tasks/.keep b/examples/ruby/example1/lib/tasks/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/log/.keep b/examples/ruby/example1/log/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/package.json b/examples/ruby/example1/package.json deleted file mode 100644 index cded20abb..000000000 --- a/examples/ruby/example1/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "example1", - "private": true, - "dependencies": { - "@rails/ujs": "^6.0.0", - "turbolinks": "^5.2.0", - "@rails/activestorage": "^6.0.0", - "@rails/actioncable": "^6.0.0" - }, - "version": "0.1.0" -} diff --git a/examples/ruby/example1/public/404.html b/examples/ruby/example1/public/404.html deleted file mode 100644 index 2be3af26f..000000000 --- a/examples/ruby/example1/public/404.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - The page you were looking for doesn't exist (404) - - - - - - -
-
-

The page you were looking for doesn't exist.

-

You may have mistyped the address or the page may have moved.

-
-

If you are the application owner check the logs for more information.

-
- - diff --git a/examples/ruby/example1/public/422.html b/examples/ruby/example1/public/422.html deleted file mode 100644 index c08eac0d1..000000000 --- a/examples/ruby/example1/public/422.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - The change you wanted was rejected (422) - - - - - - -
-
-

The change you wanted was rejected.

-

Maybe you tried to change something you didn't have access to.

-
-

If you are the application owner check the logs for more information.

-
- - diff --git a/examples/ruby/example1/public/500.html b/examples/ruby/example1/public/500.html deleted file mode 100644 index 78a030af2..000000000 --- a/examples/ruby/example1/public/500.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - We're sorry, but something went wrong (500) - - - - - - -
-
-

We're sorry, but something went wrong.

-
-

If you are the application owner check the logs for more information.

-
- - diff --git a/examples/ruby/example1/public/apple-touch-icon-precomposed.png b/examples/ruby/example1/public/apple-touch-icon-precomposed.png deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/public/apple-touch-icon.png b/examples/ruby/example1/public/apple-touch-icon.png deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/public/favicon.ico b/examples/ruby/example1/public/favicon.ico deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/public/robots.txt b/examples/ruby/example1/public/robots.txt deleted file mode 100644 index c19f78ab6..000000000 --- a/examples/ruby/example1/public/robots.txt +++ /dev/null @@ -1 +0,0 @@ -# See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file diff --git a/examples/ruby/example1/storage/.keep b/examples/ruby/example1/storage/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/test/application_system_test_case.rb b/examples/ruby/example1/test/application_system_test_case.rb deleted file mode 100644 index d19212abd..000000000 --- a/examples/ruby/example1/test/application_system_test_case.rb +++ /dev/null @@ -1,5 +0,0 @@ -require "test_helper" - -class ApplicationSystemTestCase < ActionDispatch::SystemTestCase - driven_by :selenium, using: :chrome, screen_size: [1400, 1400] -end diff --git a/examples/ruby/example1/test/channels/application_cable/connection_test.rb b/examples/ruby/example1/test/channels/application_cable/connection_test.rb deleted file mode 100644 index 800405f15..000000000 --- a/examples/ruby/example1/test/channels/application_cable/connection_test.rb +++ /dev/null @@ -1,11 +0,0 @@ -require "test_helper" - -class ApplicationCable::ConnectionTest < ActionCable::Connection::TestCase - # test "connects with cookies" do - # cookies.signed[:user_id] = 42 - # - # connect - # - # assert_equal connection.user_id, "42" - # end -end diff --git a/examples/ruby/example1/test/controllers/.keep b/examples/ruby/example1/test/controllers/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/test/fixtures/files/.keep b/examples/ruby/example1/test/fixtures/files/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/test/helpers/.keep b/examples/ruby/example1/test/helpers/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/test/integration/.keep b/examples/ruby/example1/test/integration/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/test/mailers/.keep b/examples/ruby/example1/test/mailers/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/test/models/.keep b/examples/ruby/example1/test/models/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/test/system/.keep b/examples/ruby/example1/test/system/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/ruby/example1/test/test_helper.rb b/examples/ruby/example1/test/test_helper.rb deleted file mode 100644 index 47b598dee..000000000 --- a/examples/ruby/example1/test/test_helper.rb +++ /dev/null @@ -1,13 +0,0 @@ -ENV['RAILS_ENV'] ||= 'test' -require_relative "../config/environment" -require "rails/test_help" - -class ActiveSupport::TestCase - # Run tests in parallel with specified workers - parallelize(workers: :number_of_processors) - - # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. - fixtures :all - - # Add more helper methods to be used by all tests here... -end diff --git a/examples/swift/example1/example/example/Source/Container/HTMLViewController.swift b/examples/swift/example1/example/example/Source/Container/HTMLViewController.swift deleted file mode 100755 index 0c433308b..000000000 --- a/examples/swift/example1/example/example/Source/Container/HTMLViewController.swift +++ /dev/null @@ -1,31 +0,0 @@ -//TODO: Make a generic HTML handler -import UIKit - -class HTMLViewController: UIViewController { - @IBOutlet weak var webView: UIWebView! - - var contentString: String? = nil { - didSet { - loadWebView(from: contentString ?? "") - } - } - - var contentHTMLFile: String? = nil { - didSet { - let filePath = Bundle.main.path(forResource: contentHTMLFile, ofType: nil) ?? "" - let fileContents = (try? String(contentsOfFile: filePath, encoding: .utf8)) ?? "" - loadWebView(from: fileContents) - } - } -} - -extension HTMLViewController { - func loadWebView(from content:String) { - let baseURL = URL(fileURLWithPath: Bundle.main.resourcePath!, isDirectory: true) - webView.loadHTMLString(content, baseURL: baseURL) - } - - @IBAction func backItemPressed() { - dismiss(animated: true, completion: nil) - } -} diff --git a/examples/swift/example1/example/example/Source/Container/HintVC.swift b/examples/swift/example1/example/example/Source/Container/HintVC.swift deleted file mode 100755 index 1b42ac77b..000000000 --- a/examples/swift/example1/example/example/Source/Container/HintVC.swift +++ /dev/null @@ -1,56 +0,0 @@ - -import UIKit - -class HintVC: UIViewController { - var exercise: Exercise? { - didSet { - guard let excercise = exercise else { - return - } - loadPages(with: excercise) - } - } - - @IBOutlet weak var scrollView: UIScrollView! - - override func viewDidLoad() { - super.viewDidLoad() - self.title = "Hints" - } - - func loadPages(with exercise: Exercise) { - guard let hints = exercise.hints else { return } - for i in 0.. String { - if text.hasPrefix("") { - return text - } else { - let htmlString = - """ - -

\(exercise?.name ?? "") (\(index + 1)/\(exercise?.hints?.count ?? 0))

\(text) - """ - return htmlString - } - } - - func configureWebviewWith(htmlText: String) -> UIWebView { - let webView = UIWebView() - let baseURL = URL(fileURLWithPath: Bundle.main.resourcePath!, isDirectory: true) - webView.loadHTMLString(htmlText, baseURL: baseURL) - return webView - } -} diff --git a/examples/swift/example1/example/example/Source/Exercises/Injection Flaws/XSS/CrossSiteScriptingExerciseVC.swift b/examples/swift/example1/example/example/Source/Exercises/Injection Flaws/XSS/CrossSiteScriptingExerciseVC.swift deleted file mode 100644 index e1dcd6535..000000000 --- a/examples/swift/example1/example/example/Source/Exercises/Injection Flaws/XSS/CrossSiteScriptingExerciseVC.swift +++ /dev/null @@ -1,11 +0,0 @@ -import UIKit - -class CrossSiteScriptingExerciseVC: UIViewController { - @IBOutlet weak var webview: UIWebView! - @IBOutlet weak var textField: UITextField! - - @IBAction func loadItemPressed() { - let webText = "Welcome to XSS Exercise !!! \n Here is UIWebView ! \(textField.text ?? "")" - webview.loadHTMLString(webText, baseURL: nil) - } -} diff --git a/examples/swift/example1/example/example/Source/Exercises/Key Management/Hard Coded Keys/BrokenCryptographyExerciseVC.swift b/examples/swift/example1/example/example/Source/Exercises/Key Management/Hard Coded Keys/BrokenCryptographyExerciseVC.swift deleted file mode 100644 index 20466912f..000000000 --- a/examples/swift/example1/example/example/Source/Exercises/Key Management/Hard Coded Keys/BrokenCryptographyExerciseVC.swift +++ /dev/null @@ -1,42 +0,0 @@ -import UIKit - -func pathDocumentDirectory(fileName: String) -> String { - let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, - .userDomainMask, true)[0] - return documentsPath + "/\(fileName)" -} - -class BrokenCryptographyExerciseVC: UIViewController { - var encryptionKey = "myencrytionkey" - @IBOutlet weak var passwordTextField: UITextField! - - @IBAction func showItemPressed() { - - UIAlertController.showAlertWith(title: "BrokenCryptography", message: "Try Harder!") - - /* let encryptedFilePath = pathDocumentDirectory(fileName: "encrypted") - let encryptedFilePathURL = URL(fileURLWithPath: encryptedFilePath) - guard let encryptedData = try? Data(contentsOf: encryptedFilePathURL) else { - return - } - - let encryptionKeyData = encryptionKey.data(using: .utf8) - let decryptedData = encryptedData.aes(operation: kCCDecrypt, keyData: encryptionKeyData!) - let decryptedPassword = String(data: decryptedData, encoding: .utf8) ?? "" - print(decryptedPassword) - UIAlertController.showAlertWith(title: "BrokenCryptography", message: decryptedPassword) */ - } - - override func viewDidLoad() { - super.viewDidLoad() - let password = "b@nkP@ssword123" - passwordTextField.text = password - let data = password.data(using: .utf8) - print(data!) - - let encryptionKeyData = encryptionKey.data(using: .utf8) - let encryptedData = data?.aes(operation: kCCEncrypt, keyData: encryptionKeyData!) - let url = URL(fileURLWithPath: pathDocumentDirectory(fileName: "encrypted")) - try? encryptedData?.write(to: url, options: .atomic) - } -} diff --git a/examples/yaml/example1/example.yaml b/examples/yaml/example1/example.yaml deleted file mode 100644 index 54ff0f4aa..000000000 --- a/examples/yaml/example1/example.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 2020 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -apiVersion: v1 -kind: Pod -spec: - initContainers: - - name: test - securityContext: - capabilities: - add: - - SYS_ADMIN \ No newline at end of file