Full Code of hashicorp/waypoint-examples for AI

main 19d5162a6267 cached
578 files
510.8 KB
159.9k tokens
156 symbols
1 requests
Download .txt
Showing preview only (641K chars total). Download the full file or copy to clipboard to get everything.
Repository: hashicorp/waypoint-examples
Branch: main
Commit: 19d5162a6267
Files: 578
Total size: 510.8 KB

Directory structure:
gitextract__3jods0z/

├── .github/
│   ├── CODEOWNERS
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   └── ISSUE_TEMPLATE/
│       ├── bug_report.md
│       ├── config.yml
│       └── feature_request.md
├── .gitignore
├── LICENSE
├── README.md
├── aws/
│   ├── aws-ecs/
│   │   ├── nodejs/
│   │   │   ├── .gitignore
│   │   │   ├── Procfile
│   │   │   ├── README.md
│   │   │   ├── index.js
│   │   │   ├── main.tf
│   │   │   ├── package.json
│   │   │   ├── packer.json
│   │   │   ├── public/
│   │   │   │   └── stylesheets/
│   │   │   │       └── main.css
│   │   │   ├── views/
│   │   │   │   ├── pages/
│   │   │   │   │   └── index.ejs
│   │   │   │   └── partials/
│   │   │   │       └── header.ejs
│   │   │   └── waypoint.hcl
│   │   ├── nodejs-terraform/
│   │   │   ├── .gitignore
│   │   │   ├── Procfile
│   │   │   ├── README.md
│   │   │   ├── index.js
│   │   │   ├── package.json
│   │   │   ├── packer.json
│   │   │   ├── public/
│   │   │   │   └── stylesheets/
│   │   │   │       └── main.css
│   │   │   ├── terraform/
│   │   │   │   ├── .terraform.lock.hcl
│   │   │   │   ├── backend.tf
│   │   │   │   ├── ecs.tf
│   │   │   │   ├── main.tf
│   │   │   │   ├── outputs.tf
│   │   │   │   └── variables.tf
│   │   │   ├── views/
│   │   │   │   ├── pages/
│   │   │   │   │   └── index.ejs
│   │   │   │   └── partials/
│   │   │   │       └── header.ejs
│   │   │   └── waypoint.hcl
│   │   └── python/
│   │       ├── Dockerfile
│   │       ├── README.md
│   │       ├── app/
│   │       │   ├── app.py
│   │       │   ├── static/
│   │       │   │   ├── images/
│   │       │   │   │   └── language.svg.old
│   │       │   │   └── stylesheets/
│   │       │   │       └── main.css
│   │       │   ├── templates/
│   │       │   │   └── index.html
│   │       │   └── wsgi.py
│   │       ├── requirements.txt
│   │       └── waypoint.hcl
│   ├── ec2/
│   │   ├── README.md
│   │   └── waypoint.hcl
│   └── lambda/
│       ├── nodejs/
│       │   └── waypoint.hcl
│       ├── nodejs-graphql/
│       │   ├── .gitignore
│       │   ├── Dockerfile
│       │   ├── README.md
│       │   ├── index.js
│       │   ├── package.json
│       │   └── waypoint.hcl
│       └── ruby/
│           ├── Dockerfile
│           ├── README.md
│           ├── handler.rb
│           └── waypoint.hcl
├── azure/
│   └── azure-container-instance/
│       └── nodejs/
│           ├── .gitignore
│           ├── Procfile
│           ├── README.md
│           ├── index.js
│           ├── package.json
│           ├── public/
│           │   └── stylesheets/
│           │       └── main.css
│           ├── views/
│           │   ├── pages/
│           │   │   └── index.ejs
│           │   └── partials/
│           │       └── header.ejs
│           └── waypoint.hcl
├── docker/
│   ├── angular/
│   │   ├── Procfile
│   │   ├── README.md
│   │   ├── angular.json
│   │   ├── browserslist
│   │   ├── e2e/
│   │   │   ├── protractor.conf.js
│   │   │   ├── src/
│   │   │   │   ├── app.e2e-spec.ts
│   │   │   │   └── app.po.ts
│   │   │   └── tsconfig.json
│   │   ├── karma.conf.js
│   │   ├── package.json
│   │   ├── server.js
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── app.component.html
│   │   │   │   ├── app.component.scss
│   │   │   │   ├── app.component.spec.ts
│   │   │   │   ├── app.component.ts
│   │   │   │   └── app.module.ts
│   │   │   ├── assets/
│   │   │   │   └── .gitkeep
│   │   │   ├── environments/
│   │   │   │   ├── environment.prod.ts
│   │   │   │   └── environment.ts
│   │   │   ├── index.html
│   │   │   ├── main.ts
│   │   │   ├── polyfills.ts
│   │   │   ├── styles.scss
│   │   │   └── test.ts
│   │   ├── tsconfig.app.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.spec.json
│   │   ├── tslint.json
│   │   └── waypoint.hcl
│   ├── aspnetapp/
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── Pages/
│   │   │   ├── Error.cshtml
│   │   │   ├── Error.cshtml.cs
│   │   │   ├── Index.cshtml
│   │   │   ├── Index.cshtml.cs
│   │   │   ├── Privacy.cshtml
│   │   │   ├── Privacy.cshtml.cs
│   │   │   ├── Shared/
│   │   │   │   ├── _Layout.cshtml
│   │   │   │   └── _ValidationScriptsPartial.cshtml
│   │   │   ├── _ViewImports.cshtml
│   │   │   └── _ViewStart.cshtml
│   │   ├── Program.cs
│   │   ├── Properties/
│   │   │   └── launchSettings.json
│   │   ├── README.md
│   │   ├── Startup.cs
│   │   ├── appsettings.Development.json
│   │   ├── appsettings.json
│   │   ├── aspnetapp.csproj
│   │   ├── waypoint.hcl
│   │   └── wwwroot/
│   │       └── static/
│   │           └── stylesheets/
│   │               └── main.css
│   ├── go/
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── go-multiapp/
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── java/
│   │   ├── .gitignore
│   │   ├── .mvn/
│   │   │   └── wrapper/
│   │   │       ├── maven-wrapper.jar
│   │   │       └── maven-wrapper.properties
│   │   ├── README.md
│   │   ├── mvnw
│   │   ├── mvnw.cmd
│   │   ├── pom.xml
│   │   ├── src/
│   │   │   ├── main/
│   │   │   │   ├── java/
│   │   │   │   │   └── com/
│   │   │   │   │       └── example/
│   │   │   │   │           └── waypoint/
│   │   │   │   │               └── WaypointApplication.java
│   │   │   │   └── resources/
│   │   │   │       ├── application.properties
│   │   │   │       ├── public/
│   │   │   │       │   └── stylesheets/
│   │   │   │       │       └── main.css
│   │   │   │       └── templates/
│   │   │   │           ├── fragments/
│   │   │   │           │   └── layout.html
│   │   │   │           └── index.html
│   │   │   └── test/
│   │   │       └── java/
│   │   │           └── com/
│   │   │               └── example/
│   │   │                   └── waypoint/
│   │   │                       └── WaypointApplicationTests.java
│   │   ├── system.properties
│   │   ├── waypoint.hcl
│   │   ├── waypoint.hcl.gcp
│   │   ├── waypoint.hcl.heroku
│   │   └── waypoint.hcl.paketo
│   ├── next-js/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── api/
│   │   │   │   └── hello.js
│   │   │   └── index.js
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   └── waypoint.hcl
│   ├── nodejs/
│   │   ├── .gitignore
│   │   ├── Procfile
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── php/
│   │   ├── .editorconfig
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── .styleci.yml
│   │   ├── Procfile
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── Console/
│   │   │   │   └── Kernel.php
│   │   │   ├── Exceptions/
│   │   │   │   └── Handler.php
│   │   │   ├── Http/
│   │   │   │   ├── Controllers/
│   │   │   │   │   └── Controller.php
│   │   │   │   ├── Kernel.php
│   │   │   │   └── Middleware/
│   │   │   │       ├── Authenticate.php
│   │   │   │       ├── EncryptCookies.php
│   │   │   │       ├── PreventRequestsDuringMaintenance.php
│   │   │   │       ├── RedirectIfAuthenticated.php
│   │   │   │       ├── TrimStrings.php
│   │   │   │       ├── TrustHosts.php
│   │   │   │       ├── TrustProxies.php
│   │   │   │       └── VerifyCsrfToken.php
│   │   │   ├── Models/
│   │   │   │   └── User.php
│   │   │   └── Providers/
│   │   │       ├── AppServiceProvider.php
│   │   │       ├── AuthServiceProvider.php
│   │   │       ├── BroadcastServiceProvider.php
│   │   │       ├── EventServiceProvider.php
│   │   │       └── RouteServiceProvider.php
│   │   ├── artisan
│   │   ├── bootstrap/
│   │   │   ├── app.php
│   │   │   └── cache/
│   │   │       └── .gitignore
│   │   ├── composer.json
│   │   ├── config/
│   │   │   ├── app.php
│   │   │   ├── auth.php
│   │   │   ├── broadcasting.php
│   │   │   ├── cache.php
│   │   │   ├── cors.php
│   │   │   ├── database.php
│   │   │   ├── filesystems.php
│   │   │   ├── hashing.php
│   │   │   ├── logging.php
│   │   │   ├── mail.php
│   │   │   ├── queue.php
│   │   │   ├── services.php
│   │   │   ├── session.php
│   │   │   └── view.php
│   │   ├── database/
│   │   │   ├── .gitignore
│   │   │   ├── factories/
│   │   │   │   └── UserFactory.php
│   │   │   ├── migrations/
│   │   │   │   ├── 2014_10_12_000000_create_users_table.php
│   │   │   │   ├── 2014_10_12_100000_create_password_resets_table.php
│   │   │   │   └── 2019_08_19_000000_create_failed_jobs_table.php
│   │   │   └── seeders/
│   │   │       └── DatabaseSeeder.php
│   │   ├── package.json
│   │   ├── phpunit.xml
│   │   ├── public/
│   │   │   ├── .htaccess
│   │   │   ├── css/
│   │   │   │   └── main.css
│   │   │   ├── index.php
│   │   │   ├── robots.txt
│   │   │   └── web.config
│   │   ├── resources/
│   │   │   ├── css/
│   │   │   │   └── app.css
│   │   │   ├── js/
│   │   │   │   ├── app.js
│   │   │   │   └── bootstrap.js
│   │   │   ├── lang/
│   │   │   │   └── en/
│   │   │   │       ├── auth.php
│   │   │   │       ├── pagination.php
│   │   │   │       ├── passwords.php
│   │   │   │       └── validation.php
│   │   │   └── views/
│   │   │       └── welcome.blade.php
│   │   ├── routes/
│   │   │   ├── api.php
│   │   │   ├── channels.php
│   │   │   ├── console.php
│   │   │   └── web.php
│   │   ├── server.php
│   │   ├── storage/
│   │   │   ├── app/
│   │   │   │   └── .gitignore
│   │   │   ├── framework/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── cache/
│   │   │   │   │   └── .gitignore
│   │   │   │   ├── sessions/
│   │   │   │   │   └── .gitignore
│   │   │   │   ├── testing/
│   │   │   │   │   └── .gitignore
│   │   │   │   └── views/
│   │   │   │       └── .gitignore
│   │   │   └── logs/
│   │   │       └── .gitignore
│   │   ├── tests/
│   │   │   ├── CreatesApplication.php
│   │   │   ├── Feature/
│   │   │   │   └── ExampleTest.php
│   │   │   ├── TestCase.php
│   │   │   └── Unit/
│   │   │       └── ExampleTest.php
│   │   ├── waypoint.hcl
│   │   └── webpack.mix.js
│   ├── python/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── app.py
│   │   │   ├── static/
│   │   │   │   └── stylesheets/
│   │   │   │       └── main.css
│   │   │   ├── templates/
│   │   │   │   └── index.html
│   │   │   └── wsgi.py
│   │   ├── requirements.txt
│   │   └── waypoint.hcl
│   ├── reactjs/
│   │   ├── .gitignore
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── nginx/
│   │   │   └── default.conf
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   ├── manifest.json
│   │   │   └── robots.txt
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.js
│   │   │   ├── App.test.js
│   │   │   ├── index.js
│   │   │   ├── serviceWorker.js
│   │   │   └── setupTests.js
│   │   └── waypoint.hcl
│   ├── reactjs-packer/
│   │   ├── .gitignore
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── nginx/
│   │   │   └── default.conf
│   │   ├── nginx.pkr.hcl
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   ├── manifest.json
│   │   │   └── robots.txt
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.js
│   │   │   ├── App.test.js
│   │   │   ├── index.js
│   │   │   ├── serviceWorker.js
│   │   │   └── setupTests.js
│   │   └── waypoint.hcl
│   ├── ruby/
│   │   ├── .gitignore
│   │   ├── Gemfile
│   │   ├── Procfile
│   │   ├── README.md
│   │   ├── Rakefile
│   │   ├── app/
│   │   │   ├── assets/
│   │   │   │   ├── images/
│   │   │   │   │   └── .keep
│   │   │   │   ├── javascripts/
│   │   │   │   │   ├── application.js
│   │   │   │   │   ├── welcome.js.coffee
│   │   │   │   │   └── widgets.js.coffee
│   │   │   │   └── stylesheets/
│   │   │   │       ├── application.css
│   │   │   │       ├── main.css.scss
│   │   │   │       ├── scaffolds.css.scss
│   │   │   │       ├── theme.css.scss
│   │   │   │       ├── welcome.css.scss
│   │   │   │       └── widgets.css.scss
│   │   │   ├── controllers/
│   │   │   │   ├── application_controller.rb
│   │   │   │   ├── concerns/
│   │   │   │   │   └── .keep
│   │   │   │   ├── welcome_controller.rb
│   │   │   │   └── widgets_controller.rb
│   │   │   ├── helpers/
│   │   │   │   ├── application_helper.rb
│   │   │   │   ├── welcome_helper.rb
│   │   │   │   └── widgets_helper.rb
│   │   │   ├── mailers/
│   │   │   │   └── .keep
│   │   │   ├── models/
│   │   │   │   ├── .keep
│   │   │   │   ├── concerns/
│   │   │   │   │   └── .keep
│   │   │   │   └── widget.rb
│   │   │   └── views/
│   │   │       ├── layouts/
│   │   │       │   └── application.html.erb
│   │   │       ├── welcome/
│   │   │       │   └── index.erb
│   │   │       └── widgets/
│   │   │           ├── _form.html.erb
│   │   │           ├── edit.html.erb
│   │   │           ├── index.html.erb
│   │   │           ├── index.json.jbuilder
│   │   │           ├── new.html.erb
│   │   │           ├── show.html.erb
│   │   │           └── show.json.jbuilder
│   │   ├── bin/
│   │   │   ├── bundle
│   │   │   ├── rails
│   │   │   ├── rake
│   │   │   ├── setup
│   │   │   ├── spring
│   │   │   ├── update
│   │   │   └── yarn
│   │   ├── config/
│   │   │   ├── application.rb
│   │   │   ├── boot.rb
│   │   │   ├── cable.yml
│   │   │   ├── database.yml
│   │   │   ├── environment.rb
│   │   │   ├── environments/
│   │   │   │   ├── development.rb
│   │   │   │   ├── production.rb
│   │   │   │   └── test.rb
│   │   │   ├── initializers/
│   │   │   │   ├── application_controller_renderer.rb
│   │   │   │   ├── assets.rb
│   │   │   │   ├── backtrace_silencers.rb
│   │   │   │   ├── content_security_policy.rb
│   │   │   │   ├── cookies_serializer.rb
│   │   │   │   ├── filter_parameter_logging.rb
│   │   │   │   ├── inflections.rb
│   │   │   │   ├── mime_types.rb
│   │   │   │   ├── new_framework_defaults_5_2.rb
│   │   │   │   ├── session_store.rb
│   │   │   │   └── wrap_parameters.rb
│   │   │   ├── locales/
│   │   │   │   └── en.yml
│   │   │   ├── puma.rb
│   │   │   ├── routes.rb
│   │   │   ├── secrets.yml
│   │   │   ├── spring.rb
│   │   │   └── storage.yml
│   │   ├── config.ru
│   │   ├── db/
│   │   │   ├── migrate/
│   │   │   │   └── 20140707111715_create_widgets.rb
│   │   │   ├── schema.rb
│   │   │   └── seeds.rb
│   │   ├── lib/
│   │   │   ├── assets/
│   │   │   │   └── .keep
│   │   │   └── tasks/
│   │   │       └── .keep
│   │   ├── log/
│   │   │   └── .keep
│   │   ├── public/
│   │   │   ├── 404.html
│   │   │   ├── 422.html
│   │   │   ├── 500.html
│   │   │   └── robots.txt
│   │   ├── test/
│   │   │   ├── controllers/
│   │   │   │   ├── .keep
│   │   │   │   ├── welcome_controller_test.rb
│   │   │   │   └── widgets_controller_test.rb
│   │   │   ├── fixtures/
│   │   │   │   ├── .keep
│   │   │   │   └── widgets.yml
│   │   │   ├── helpers/
│   │   │   │   ├── .keep
│   │   │   │   ├── welcome_helper_test.rb
│   │   │   │   └── widgets_helper_test.rb
│   │   │   ├── integration/
│   │   │   │   └── .keep
│   │   │   ├── mailers/
│   │   │   │   └── .keep
│   │   │   ├── models/
│   │   │   │   ├── .keep
│   │   │   │   └── widget_test.rb
│   │   │   └── test_helper.rb
│   │   ├── vendor/
│   │   │   └── assets/
│   │   │       ├── javascripts/
│   │   │       │   └── .keep
│   │   │       └── stylesheets/
│   │   │           └── .keep
│   │   └── waypoint.hcl
│   ├── static/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── nginx.conf
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   └── svelte/
│       ├── .gitignore
│       ├── Dockerfile
│       ├── README.md
│       ├── package.json
│       ├── public/
│       │   ├── index.html
│       │   └── main.css
│       ├── rollup.config.js
│       ├── src/
│       │   ├── App.svelte
│       │   ├── main.js
│       │   └── views/
│       │       └── Index.svelte
│       └── waypoint.hcl
├── gcp/
│   └── google-cloud-run/
│       └── nodejs/
│           ├── .gitignore
│           ├── Procfile
│           ├── README.md
│           ├── index.js
│           ├── package.json
│           ├── public/
│           │   └── stylesheets/
│           │       └── main.css
│           ├── views/
│           │   ├── pages/
│           │   │   └── index.ejs
│           │   └── partials/
│           │       └── header.ejs
│           └── waypoint.hcl
├── kubernetes/
│   ├── aws-eks/
│   │   └── nodejs/
│   │       ├── .gitignore
│   │       ├── Procfile
│   │       ├── README.md
│   │       ├── index.js
│   │       ├── package.json
│   │       ├── public/
│   │       │   └── stylesheets/
│   │       │       └── main.css
│   │       ├── views/
│   │       │   ├── pages/
│   │       │   │   └── index.ejs
│   │       │   └── partials/
│   │       │       └── header.ejs
│   │       └── waypoint.hcl
│   ├── exec-kubectl-apply/
│   │   ├── README.md
│   │   ├── example-nodejs-exec.yml
│   │   ├── index.js
│   │   ├── output.txt
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── go/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── go-gitops/
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── go-multiapp-ingress/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app-one/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   ├── app-two/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── go-multiworkspace/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── config.yml
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── main.go
│   │   └── waypoint.hcl
│   ├── go-workspace-pull/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── java/
│   │   ├── .gitignore
│   │   ├── .mvn/
│   │   │   └── wrapper/
│   │   │       ├── maven-wrapper.jar
│   │   │       └── maven-wrapper.properties
│   │   ├── README.md
│   │   ├── mvnw
│   │   ├── mvnw.cmd
│   │   ├── pom.xml
│   │   ├── src/
│   │   │   ├── main/
│   │   │   │   ├── java/
│   │   │   │   │   └── com/
│   │   │   │   │       └── example/
│   │   │   │   │           └── waypoint/
│   │   │   │   │               └── WaypointApplication.java
│   │   │   │   └── resources/
│   │   │   │       ├── application.properties
│   │   │   │       ├── public/
│   │   │   │       │   └── stylesheets/
│   │   │   │       │       └── main.css
│   │   │   │       └── templates/
│   │   │   │           ├── fragments/
│   │   │   │           │   └── layout.html
│   │   │   │           └── index.html
│   │   │   └── test/
│   │   │       └── java/
│   │   │           └── com/
│   │   │               └── example/
│   │   │                   └── waypoint/
│   │   │                       └── WaypointApplicationTests.java
│   │   ├── system.properties
│   │   └── waypoint.hcl
│   ├── nodejs/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── nodejs-apply/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── k8s/
│   │   │   └── deployment.yaml
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── nodejs-helm/
│   │   ├── README.md
│   │   ├── helm/
│   │   │   ├── .helmignore
│   │   │   ├── Chart.yaml
│   │   │   ├── templates/
│   │   │   │   ├── NOTES.txt
│   │   │   │   ├── _helpers.tpl
│   │   │   │   ├── deployment.yaml
│   │   │   │   └── service.yaml
│   │   │   └── values.yaml
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── values.yaml.tpl
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── nodejs-ingress/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── nodejs-ingress-sidecar/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── nginx.conf
│   │   ├── package.json
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── nodejs-local-registry/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   └── nodejs-metrics-sidecar/
│       ├── README.md
│       ├── index.js
│       ├── package.json
│       ├── public/
│       │   └── stylesheets/
│       │       └── main.css
│       ├── telegraf.conf
│       ├── views/
│       │   ├── pages/
│       │   │   └── index.ejs
│       │   └── partials/
│       │       └── header.ejs
│       └── waypoint.hcl
├── learn/
│   ├── dynamic-application-configuration/
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── main.go
│   │   ├── postgres.nomad.hcl
│   │   ├── readonly.sql
│   │   ├── waypoint-policy.hcl
│   │   └── waypoint.hcl
│   ├── input-variables/
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   └── static-application-configuration/
│       ├── README.md
│       ├── go.mod
│       ├── main.go
│       └── waypoint.hcl
├── nomad/
│   ├── nodejs/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   └── nodejs-jobspec/
│       ├── README.md
│       ├── app.nomad.tpl
│       ├── index.js
│       ├── package.json
│       ├── public/
│       │   └── stylesheets/
│       │       └── main.css
│       ├── views/
│       │   ├── pages/
│       │   │   └── index.ejs
│       │   └── partials/
│       │       └── header.ejs
│       └── waypoint.hcl
└── terraform/
    └── variables/
        ├── .gitignore
        ├── Dockerfile
        ├── README.md
        ├── terraform/
        │   ├── main/
        │   │   ├── main.tf
        │   │   └── outputs.tf
        │   └── tfc/
        │       ├── .terraform.lock.hcl
        │       ├── main.tf
        │       └── variables.tf
        └── waypoint.hcl

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/CODEOWNERS
================================================
* @hashicorp/waypoint


================================================
FILE: .github/CODE_OF_CONDUCT.md
================================================
# Code of Conduct

HashiCorp Community Guidelines apply to you when interacting with the community here on GitHub and contributing code.

Please read the full text at https://www.hashicorp.com/community-guidelines


================================================
FILE: .github/CONTRIBUTING.md
================================================
# Contributing to Waypoint Examples

>**Note:** We take Waypoint's security and our users' trust very seriously.
>If you believe you have found a security issue in Waypoint, please responsibly
>disclose by contacting us at security@hashicorp.com.

**First:** if you're unsure or afraid of _anything_, just ask or submit the
issue or pull request anyways. You won't be yelled at for giving your best
effort. The worst that can happen is that you'll be politely asked to change
something. We appreciate any sort of contributions, and don't want a wall of
rules to get in the way of that.

That said, if you want to ensure that a pull request is likely to be merged,
talk to us! A great way to do this is in issues themselves. When you want to
work on an issue, comment on it first and tell us the approach you want to take.

## Getting Started

### Some Ways to Contribute

* Report potential bugs.
* Suggest product enhancements.
* Increase our test coverage.
* Fix a [bug](https://github.com/hashicorp/waypoint-examples/labels/bug).
* Implement a requested [enhancement](https://github.com/hashicorp/waypoint-examples/labels/enhancement).
* Improve our guides and documentation.

### Reporting an Issue:

>Note: Issues on GitHub for Waypoint are intended to be related to bugs or feature requests.
>Questions should be directed to other community resources such as the [forum](https://discuss.hashicorp.com/)

* Make sure you test against the latest released version. It is possible we
already fixed the bug you're experiencing. However, if you are on an older
version of Waypoint and feel the issue is critical, do let us know.

* Check existing issues (both open and closed) to make sure it has not been
reported previously.

* Provide a reproducible test case. If a contributor can't reproduce an issue,
then it dramatically lowers the chances it'll get fixed. If we can't reproduce
an issue long enough, we are usually forced to close the issue.

* As part of the test case, please include any Waypoint configurations
(`waypoint.hcl`), build configs such as Dockerfiles, etc. Log output with
log level set with verbose flags (at least `-vv`) is helpful too.

* If the issue is related to the browser UI, please also include the name
and version of the browser and any extensions that may be interacting
with the UI

* Aim to respond promptly to any questions made by the Waypoint team on your
issue. Stale issues will be closed.

### Issue Lifecycle

1. The issue is reported.

2. The issue is verified and categorized by a Waypoint maintainer.
   Categorization is done via tags. For example, bugs are tagged as "bug".

3. Unless it is critical, the issue is left for a period of time (sometimes many
   weeks or months), giving outside contributors a chance to address the issue
   and our internal teams time to plan for inclusion in a release.

4. The issue is addressed in a pull request or commit. The issue will be
   referenced in the commit message so that the code that fixes it is clearly
   linked.

5. The issue is closed.


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Let us know about a bug!
title: ''
labels: new
assignees: ''

---

<!-- Please reserve GitHub issues for bug reports and feature requests.

For questions, the best place to get answers is on our [discussion forum](https://discuss.hashicorp.com/c/waypoint), as they will get more visibility from experienced users than the issue tracker.

Please note: We take Waypoint's security and our users' trust very seriously. If you believe you have found a security issue in Waypoint, please responsibly disclose by contacting us at security@hashicorp.com. Our PGP key is available at our security page: https://www.hashicorp.com/security/

-->

**Describe your environment**
Which example app are you having problems with?

**Describe the bug**
A clear and concise description of what the bug is.

**Steps to Reproduce**
Steps to reproduce the behavior. Please include any `waypoint.hcl` files
if applicable.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

contact_links:
  - name: Ask a question
    url: https://discuss.hashicorp.com/c/waypoint
    about: For increased visibility, please post questions on the discussion forum.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest something!
title: ''
labels: new
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is or why your proposed example
should be included. Ex. I'm always frustrated when [...]

**Describe the example scenario you wish to be included**
What technology are you hoping to add? What additional information or documentation
can you share to help us read up on your example app?

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Explain any additional use-cases**
If there are any use-cases that would help us understand the use/need/value please share them as they can help us decide on acceptance and prioritization.

**Additional context**
Add any other context or screenshots about the feature request here.


================================================
FILE: .gitignore
================================================
.DS_Store
data.db

# Local .waypoint directories
**/.waypoint/*

# Local .terraform directories
**/.terraform/*

# .tfstate files
*.tfstate
*.tfstate.*

# Crash log files
crash.log

# Ignore any .tfvars files that are generated automatically for each Terraform run. Most
# .tfvars files are managed as part of configuration and so should be included in
# version control.
#
# example.tfvars

# Ignore override files as they are usually used to override resources locally and so
# are not checked in
override.tf
override.tf.json
*_override.tf
*_override.tf.json

# Include override files you do wish to add to version control using negated pattern
#
# !example_override.tf

# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
# example: *tfplan*

*.wpvars

================================================
FILE: LICENSE
================================================
Copyright (c) 2020 HashiCorp, Inc.

Mozilla Public License Version 2.0
==================================

1. Definitions
--------------

1.1. "Contributor"
    means each individual or legal entity that creates, contributes to
    the creation of, or owns Covered Software.

1.2. "Contributor Version"
    means the combination of the Contributions of others (if any) used
    by a Contributor and that particular Contributor's Contribution.

1.3. "Contribution"
    means Covered Software of a particular Contributor.

1.4. "Covered Software"
    means Source Code Form to which the initial Contributor has attached
    the notice in Exhibit A, the Executable Form of such Source Code
    Form, and Modifications of such Source Code Form, in each case
    including portions thereof.

1.5. "Incompatible With Secondary Licenses"
    means

    (a) that the initial Contributor has attached the notice described
        in Exhibit B to the Covered Software; or

    (b) that the Covered Software was made available under the terms of
        version 1.1 or earlier of the License, but not also under the
        terms of a Secondary License.

1.6. "Executable Form"
    means any form of the work other than Source Code Form.

1.7. "Larger Work"
    means a work that combines Covered Software with other material, in
    a separate file or files, that is not Covered Software.

1.8. "License"
    means this document.

1.9. "Licensable"
    means having the right to grant, to the maximum extent possible,
    whether at the time of the initial grant or subsequently, any and
    all of the rights conveyed by this License.

1.10. "Modifications"
    means any of the following:

    (a) any file in Source Code Form that results from an addition to,
        deletion from, or modification of the contents of Covered
        Software; or

    (b) any new file in Source Code Form that contains any Covered
        Software.

1.11. "Patent Claims" of a Contributor
    means any patent claim(s), including without limitation, method,
    process, and apparatus claims, in any patent Licensable by such
    Contributor that would be infringed, but for the grant of the
    License, by the making, using, selling, offering for sale, having
    made, import, or transfer of either its Contributions or its
    Contributor Version.

1.12. "Secondary License"
    means either the GNU General Public License, Version 2.0, the GNU
    Lesser General Public License, Version 2.1, the GNU Affero General
    Public License, Version 3.0, or any later versions of those
    licenses.

1.13. "Source Code Form"
    means the form of the work preferred for making modifications.

1.14. "You" (or "Your")
    means an individual or a legal entity exercising rights under this
    License. For legal entities, "You" includes any entity that
    controls, is controlled by, or is under common control with You. For
    purposes of this definition, "control" means (a) the power, direct
    or indirect, to cause the direction or management of such entity,
    whether by contract or otherwise, or (b) ownership of more than
    fifty percent (50%) of the outstanding shares or beneficial
    ownership of such entity.

2. License Grants and Conditions
--------------------------------

2.1. Grants

Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:

(a) under intellectual property rights (other than patent or trademark)
    Licensable by such Contributor to use, reproduce, make available,
    modify, display, perform, distribute, and otherwise exploit its
    Contributions, either on an unmodified basis, with Modifications, or
    as part of a Larger Work; and

(b) under Patent Claims of such Contributor to make, use, sell, offer
    for sale, have made, import, and otherwise transfer either its
    Contributions or its Contributor Version.

2.2. Effective Date

The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.

2.3. Limitations on Grant Scope

The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:

(a) for any code that a Contributor has removed from Covered Software;
    or

(b) for infringements caused by: (i) Your and any other third party's
    modifications of Covered Software, or (ii) the combination of its
    Contributions with other software (except as part of its Contributor
    Version); or

(c) under Patent Claims infringed by Covered Software in the absence of
    its Contributions.

This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).

2.4. Subsequent Licenses

No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).

2.5. Representation

Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.

2.6. Fair Use

This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.

2.7. Conditions

Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.

3. Responsibilities
-------------------

3.1. Distribution of Source Form

All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.

3.2. Distribution of Executable Form

If You distribute Covered Software in Executable Form then:

(a) such Covered Software must also be made available in Source Code
    Form, as described in Section 3.1, and You must inform recipients of
    the Executable Form how they can obtain a copy of such Source Code
    Form by reasonable means in a timely manner, at a charge no more
    than the cost of distribution to the recipient; and

(b) You may distribute such Executable Form under the terms of this
    License, or sublicense it under different terms, provided that the
    license for the Executable Form does not attempt to limit or alter
    the recipients' rights in the Source Code Form under this License.

3.3. Distribution of a Larger Work

You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).

3.4. Notices

You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.

3.5. Application of Additional Terms

You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.

4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------

If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.

5. Termination
--------------

5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.

5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.

5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.

************************************************************************
*                                                                      *
*  6. Disclaimer of Warranty                                           *
*  -------------------------                                           *
*                                                                      *
*  Covered Software is provided under this License on an "as is"       *
*  basis, without warranty of any kind, either expressed, implied, or  *
*  statutory, including, without limitation, warranties that the       *
*  Covered Software is free of defects, merchantable, fit for a        *
*  particular purpose or non-infringing. The entire risk as to the     *
*  quality and performance of the Covered Software is with You.        *
*  Should any Covered Software prove defective in any respect, You     *
*  (not any Contributor) assume the cost of any necessary servicing,   *
*  repair, or correction. This disclaimer of warranty constitutes an   *
*  essential part of this License. No use of any Covered Software is   *
*  authorized under this License except under this disclaimer.         *
*                                                                      *
************************************************************************

************************************************************************
*                                                                      *
*  7. Limitation of Liability                                          *
*  --------------------------                                          *
*                                                                      *
*  Under no circumstances and under no legal theory, whether tort      *
*  (including negligence), contract, or otherwise, shall any           *
*  Contributor, or anyone who distributes Covered Software as          *
*  permitted above, be liable to You for any direct, indirect,         *
*  special, incidental, or consequential damages of any character      *
*  including, without limitation, damages for lost profits, loss of    *
*  goodwill, work stoppage, computer failure or malfunction, or any    *
*  and all other commercial damages or losses, even if such party      *
*  shall have been informed of the possibility of such damages. This   *
*  limitation of liability shall not apply to liability for death or   *
*  personal injury resulting from such party's negligence to the       *
*  extent applicable law prohibits such limitation. Some               *
*  jurisdictions do not allow the exclusion or limitation of           *
*  incidental or consequential damages, so this exclusion and          *
*  limitation may not apply to You.                                    *
*                                                                      *
************************************************************************

8. Litigation
-------------

Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.

9. Miscellaneous
----------------

This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.

10. Versions of the License
---------------------------

10.1. New Versions

Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.

10.2. Effect of New Versions

You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.

10.3. Modified Versions

If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).

10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses

If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.

Exhibit A - Source Code Form License Notice
-------------------------------------------

  This Source Code Form is subject to the terms of the Mozilla Public
  License, v. 2.0. If a copy of the MPL was not distributed with this
  file, You can obtain one at http://mozilla.org/MPL/2.0/.

If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.

You may add additional accurate notices of copyright ownership.

Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------

  This Source Code Form is "Incompatible With Secondary Licenses", as
  defined by the Mozilla Public License, v. 2.0.


================================================
FILE: README.md
================================================
# waypoint-examples

----------------------------------------

HashiCorp Waypoint Community Edition is no longer actively maintained. For additional information on the new vision of Waypoint, check out [this blog post](https://www.hashicorp.com/blog/a-new-vision-for-hcp-waypoint) and the [HCP Waypoint documentation](https://developer.hashicorp.com/hcp/docs/waypoint).

----------------------------------------


You can use these example applications to quickly try out and learn how to use
[Waypoint](https://waypointproject.io/).

## Getting Started

If you're new to Waypoint, start by reviewing the [Getting
Started](https://waypointproject.io/docs/getting-started) page, which includes
guided tutorials and quickstart installation and deployment instructions.

All guided tutorials use applications in this repository.

Detailed tutorials with instructions for provisioning each cloud resource are at
[HashiCorp Learn](https://learn.hashicorp.com/waypoint).

## How the Examples are Organized

All of the examples in this repository are organized first by deployment
platform and then by programming language or web platform. For example:
**Docker/nodejs**.

Cloud-specific examples are in subdirectories for platform, such as **aws/aws-ecs**.

## Deploying Examples

You can experiment with the different examples by entering each directory and
running `waypoint init` followed by `waypoint up`.


================================================
FILE: aws/aws-ecs/nodejs/.gitignore
================================================
# Node build artifacts
node_modules
npm-debug.log

# Local development
*.env
*.dev
.DS_Store

# Docker
Dockerfile
docker-compose.yml


================================================
FILE: aws/aws-ecs/nodejs/Procfile
================================================
web: node index.js


================================================
FILE: aws/aws-ecs/nodejs/README.md
================================================
# Waypoint AWS-ECS Example

|Title|Description|
|---|---|
|Pack|Cloud Native Buildpack|
|Cloud|AWS|
|Language|NodeJS|
|Docs|[AWS-ECS](https://www.waypointproject.io/plugins/aws-ecs)|
|Tutorial|[HashiCorp Learn](https://learn.hashicorp.com/tutorials/waypoint/aws-ecs)|

This example demonstrates the AWS Elastic Container Service `deploy` plugin
which also provides a `build` step for the Elastic Container Registry.


================================================
FILE: aws/aws-ecs/nodejs/index.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000

express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .listen(PORT, () => console.log(`Listening on ${ PORT }`))


================================================
FILE: aws/aws-ecs/nodejs/main.tf
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 2.70"
    }
  }
}

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "web" {
  ami           = "ami-04e229bcb91f0f16b" # Nginx
  instance_type = "t2.medium"
  count         = 1

  vpc_security_group_ids = ["${aws_security_group.default.id}"]

  tags = {
    Name = "Geoffrey"
  }
}


resource "aws_security_group" "default" {
  name_prefix = "Geoffrey"

  ingress {
    from_port = 80
    to_port   = 80
    protocol  = "tcp"

  }

  ingress {
    from_port = 22
    to_port   = 22
    protocol  = "tcp"

  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }

  tags = {
    "Created-by" = "Geoffrey"

  }
}

output "public_ip" {
  value = ["${aws_instance.web.*.public_ip}"]
}

output "public_dns" {
  value = ["${aws_instance.web.*.public_dns}"]
}

================================================
FILE: aws/aws-ecs/nodejs/package.json
================================================
{
  "name": "node-js-getting-started",
  "version": "0.3.0",
  "description": "A sample Node.js app using Express 4",
  "engines": {
    "node": "16.x"
  },
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "node test.js"
  },
  "dependencies": {
    "ejs": "^3.1.6",
    "express": "^4.17.3"
  },
  "keywords": [
    "node",
    "express"
  ],
  "license": "MIT"
}


================================================
FILE: aws/aws-ecs/nodejs/packer.json
================================================
{
  "variables": {
    "aws_access_key": "",
    "aws_secret_key": ""
  },
  "builders": [
    {
      "type": "amazon-ebs",
      "access_key": "{{user `aws_access_key`}}",
      "secret_key": "{{user `aws_secret_key`}}",
      "region": "us-east-1",
      "source_ami_filter": {
        "filters": {
          "virtualization-type": "hvm",
          "name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*",
          "root-device-type": "ebs"
        },
        "owners": ["099720109477"],
        "most_recent": true
      },
      "instance_type": "t2.micro",
      "ssh_username": "ubuntu",
      "ami_name": "packer-example {{timestamp}}"
    }
  ]
}


================================================
FILE: aws/aws-ecs/nodejs/public/stylesheets/main.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #E4E5E7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #FFF;
}

* {
  margin: 0;
  padding: 0;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/pattern-tl.svg), url(/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

section .language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), .5);
  background: rgba(var(--brand), .15);
}

section h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

section p {
  padding-top: 12px;
}

section code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .15); 
}

section a {
  color: rgb(var(--brand));
}

================================================
FILE: aws/aws-ecs/nodejs/views/pages/index.ejs
================================================
<!DOCTYPE html>
<%/*
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: MPL-2.0
*/%>

<html>
  <head>
    <%- include('../partials/header.ejs') %>
  </head>

  <body>
    <div class="container">
      <header>
        <a href="https://waypointproject.io" class="logo">
          <img src="/logo.svg" alt="Logo" />
        </a>
      </header>
      <section class="content">
        <div class="language-icon">
          <img src="/language.svg" alt="Node.js Icon" />
        </div>
        <h1>This Node.js app was deployed with Waypoint.</h1>
        <p>
          Try making a change to this text locally and run <code>waypoint up</code> again to see it.
        </p>
        <p>
          Read the <a href="https://waypointproject.io/docs">documentation</a> for more about Waypoint.
        </p>
      </section>
      <footer>
        <a href="https://hashicorp.com" class="hashi">
          <img src="/hashi.svg" alt="HashiCorp" />
        </a>
      </footer>
    </div>
  </body>
</html>


================================================
FILE: aws/aws-ecs/nodejs/views/partials/header.ejs
================================================
<%/*
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: MPL-2.0
*/%>

<title>Waypoint Node.js Example</title>
<link rel="stylesheet" type="text/css" href="/stylesheets/main.css" />


================================================
FILE: aws/aws-ecs/nodejs/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "aws-ecs-nodejs"

app "ecs-nodejs-web" {
  labels = {
    "service" = "ecs-nodejs-web",
    "env"     = "dev"
  }

  build {
    use "pack" {}
    registry {
      use "aws-ecr" {
        region     = "us-east-1"
        repository = "waypoint-example"
        tag        = "latest"
      }
    }
  }

  deploy {
    use "aws-ecs" {
      region = "us-east-1"
      memory = "512"
    }
  }
}


================================================
FILE: aws/aws-ecs/nodejs-terraform/.gitignore
================================================
# Node build artifacts
node_modules
npm-debug.log

# Local development
*.env
*.dev
.DS_Store

# Docker
Dockerfile
docker-compose.yml


# Local .terraform directories
**/.terraform/*

# .tfstate files
*.tfstate
*.tfstate.*

# Crash log files
crash.log
crash.*.log

# Exclude all .tfvars files, which are likely to contain sensitive data, such as
# password, private keys, and other secrets. These should not be part of version 
# control as they are data points which are potentially sensitive and subject 
# to change depending on the environment.
*.tfvars
*.tfvars.json

# Ignore override files as they are usually used to override resources locally and so
# are not checked in
override.tf
override.tf.json
*_override.tf
*_override.tf.json

# Include override files you do wish to add to version control using negated pattern
# !example_override.tf

# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
# example: *tfplan*

# Ignore CLI configuration files
.terraformrc
terraform.rc


================================================
FILE: aws/aws-ecs/nodejs-terraform/Procfile
================================================
web: node index.js


================================================
FILE: aws/aws-ecs/nodejs-terraform/README.md
================================================
# Waypoint AWS-ECS Example with a cluster sourced from TFC

|Title|Description|
|---|---|
|Pack|Cloud Native Buildpack|
|Cloud|AWS|
|Language|NodeJS|
|Docs|[AWS-ECS](https://www.waypointproject.io/plugins/aws-ecs)|
|Tutorial|[HashiCorp Learn](https://learn.hashicorp.com/tutorials/waypoint/aws-ecs)|

This example demonstrates the AWS Elastic Container Service `deploy` plugin
which also provides a `build` step for the Elastic Container Registry.

It uses a cluster created with terraform (see the ./terraform directory), and uses the ecs cluster name as an output value in the application.

### Prerequisites

- Create a terraform cloud account and run the terraform in the `./terraform` directory

- Configure the [terraform-cloud configsourcer](https://www.waypointproject.io/plugins/terraform-cloud#source-parameters). Example:

```
wp config source-set -type=terraform-cloud -config=token=$TFC_TOKEN`
```

- Install a [remote runner](https://www.waypointproject.io/commands/runner-install), and configure your project with a [git url](https://www.waypointproject.io/commands/project-apply#git-url). Dynamic config is not allowed to be sourced on local operations.





================================================
FILE: aws/aws-ecs/nodejs-terraform/index.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000

express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .listen(PORT, () => console.log(`Listening on ${ PORT }`))


================================================
FILE: aws/aws-ecs/nodejs-terraform/package.json
================================================
{
  "name": "node-js-getting-started",
  "version": "0.3.0",
  "description": "A sample Node.js app using Express 4",
  "engines": {
    "node": "16.x"
  },
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "node test.js"
  },
  "dependencies": {
    "ejs": "^3.1.6",
    "express": "^4.17.3"
  },
  "keywords": [
    "node",
    "express"
  ],
  "license": "MIT"
}


================================================
FILE: aws/aws-ecs/nodejs-terraform/packer.json
================================================
{
  "variables": {
    "aws_access_key": "",
    "aws_secret_key": ""
  },
  "builders": [
    {
      "type": "amazon-ebs",
      "access_key": "{{user `aws_access_key`}}",
      "secret_key": "{{user `aws_secret_key`}}",
      "region": "us-east-1",
      "source_ami_filter": {
        "filters": {
          "virtualization-type": "hvm",
          "name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*",
          "root-device-type": "ebs"
        },
        "owners": ["099720109477"],
        "most_recent": true
      },
      "instance_type": "t2.micro",
      "ssh_username": "ubuntu",
      "ami_name": "packer-example {{timestamp}}"
    }
  ]
}


================================================
FILE: aws/aws-ecs/nodejs-terraform/public/stylesheets/main.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #E4E5E7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #FFF;
}

* {
  margin: 0;
  padding: 0;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/pattern-tl.svg), url(/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

section .language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), .5);
  background: rgba(var(--brand), .15);
}

section h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

section p {
  padding-top: 12px;
}

section code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .15); 
}

section a {
  color: rgb(var(--brand));
}

================================================
FILE: aws/aws-ecs/nodejs-terraform/terraform/.terraform.lock.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

# This file is maintained automatically by "terraform init".
# Manual edits may be lost in future updates.

provider "registry.terraform.io/hashicorp/aws" {
  version = "4.29.0"
  hashes = [
    "h1:u0G5dgyBJZgrXicmD/nxSJebNORcQqFkN1jU2emJBUI=",
    "zh:091615c6dddd556b8cc1cd54e1c5c1fe71b593acebacd0b274a2fed7fc4ca802",
    "zh:4cc11d7252813b2d7cb52e78b24af8eaf377cc242d1d672a7f8bf680758a4976",
    "zh:565f46308d6e96a21c273e84e0f73d3f39fd8159fc5aaf41bf65c0b0dd6f1de3",
    "zh:627b6a5574262b5f07c0e012bcb5c73afd97d90b75389c0ab154b5ae4c0dce8f",
    "zh:91622572d311c28504fbf14e9364120fbafb3adf8e2d49bfdf014752dac9dac0",
    "zh:98f37f07628b7c2960335b772a544de6bb90f0f390b9d5fdcc3ac211b9cd7def",
    "zh:9a6338478ba0e7ca75c5b43e0f91dde12d17273b1dc9934c8ff4d631b8bb837a",
    "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
    "zh:a1cc1fc49e406cba1e98250bc04a47be0b6babf5bb42f23baa40f2dc7f8b90f7",
    "zh:a251e933412036426e2f7b090000c198feee114270d5724bcc8dd9d674d43689",
    "zh:b0ef3b92947cc8cea75634139dfbfcae2207a9cb5c31d827cd34e523ca04e919",
    "zh:fb9ede02c9291e7677877bc21ec5c094da38e3cd44df91da5af36f504be399be",
  ]
}


================================================
FILE: aws/aws-ecs/nodejs-terraform/terraform/backend.tf
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

# Using a single workspace:
terraform {
  backend "remote" {
    hostname     = "app.terraform.io"
    organization = "hc-waypoint"

    workspaces {
      name = "hashiconf-demo"
    }
  }
}

provider "aws" {
  region = var.region
  # default_tags {
  #   tags = local.tags
  # }
}


================================================
FILE: aws/aws-ecs/nodejs-terraform/terraform/ecs.tf
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

resource "aws_kms_key" "ecs" {
  description             = "${var.name}-ecs"
  deletion_window_in_days = 7
}

resource "aws_cloudwatch_log_group" "ecs" {
  name = var.name
}

resource "aws_ecs_cluster" "cluster" {
  name = var.name

  configuration {
    execute_command_configuration {
      kms_key_id = aws_kms_key.ecs.arn
      logging    = "OVERRIDE"

      log_configuration {
        cloud_watch_encryption_enabled = true
        cloud_watch_log_group_name     = aws_cloudwatch_log_group.ecs.name
      }
    }
  }
}

================================================
FILE: aws/aws-ecs/nodejs-terraform/terraform/main.tf
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

data "aws_vpc" "selected" {
  default = true
}

output "test" {
  value = data.aws_vpc.selected.id
}


terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.29"
    }
  }
}

================================================
FILE: aws/aws-ecs/nodejs-terraform/terraform/outputs.tf
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

output "ecs_cluster_name" {
  value       = aws_ecs_cluster.cluster.name
  description = "ecs cluster name"
}

================================================
FILE: aws/aws-ecs/nodejs-terraform/terraform/variables.tf
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0


variable "name" {
  type        = string
  description = "Name for infrastructure resources"
  default     = "tfcwaypoint"
}

# variable "tags" {
#   type        = map(string)
#   description = "Tags to add to infrastructure resources"
#   default     = {}
# }

variable "region" {
  type        = string
  description = "AWS Region"
  default     = "us-west-2"
  validation {
    condition     = contains(["us-west-2", "us-west-2"], var.region)
    error_message = "Region must be a valid one for HCP."
  }
}


================================================
FILE: aws/aws-ecs/nodejs-terraform/views/pages/index.ejs
================================================
<!DOCTYPE html>
<%/*
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: MPL-2.0
*/%>

<html>
  <head>
    <%- include('../partials/header.ejs') %>
  </head>

  <body>
    <div class="container">
      <header>
        <a href="https://waypointproject.io" class="logo">
          <img src="/logo.svg" alt="Logo" />
        </a>
      </header>
      <section class="content">
        <div class="language-icon">
          <img src="/language.svg" alt="Node.js Icon" />
        </div>
        <h1>This Node.js app was deployed with Waypoint.</h1>
        <p>
          Try making a change to this text locally and run <code>waypoint up</code> again to see it.
        </p>
        <p>
          Read the <a href="https://waypointproject.io/docs">documentation</a> for more about Waypoint.
        </p>
      </section>
      <footer>
        <a href="https://hashicorp.com" class="hashi">
          <img src="/hashi.svg" alt="HashiCorp" />
        </a>
      </footer>
    </div>
  </body>
</html>


================================================
FILE: aws/aws-ecs/nodejs-terraform/views/partials/header.ejs
================================================
<%/*
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: MPL-2.0
*/%>

<title>Waypoint Node.js Example</title>
<link rel="stylesheet" type="text/css" href="/stylesheets/main.css" />


================================================
FILE: aws/aws-ecs/nodejs-terraform/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "njs-ecs-tfc-demo"

app "njs-ecs-tfc-demo" {
  build {
    use "pack" {}
    registry {
      use "aws-ecr" {
        region     = "us-west-2"
        repository = "njs-ecs-tfc"
        tag        = "latest"
      }
    }
  }

  deploy {
    use "aws-ecs" {
      region  = "us-west-2"
      memory  = "512"
      cluster = var.ecs_cluster
    }
  }
}

variable "ecs_cluster" {
  default = dynamic("terraform-cloud", {
    organization = "hc-waypoint"
    workspace    = "hashiconf-demo"
    output       = "ecs_cluster_name"
  })
  type    = string
  sensitive   = false
  description = "name of the ecs cluster to deploy into"
}


================================================
FILE: aws/aws-ecs/python/Dockerfile
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

FROM ubuntu:20.04

ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

RUN apt-get update -y && apt-get install python3-pip -y

ADD requirements.txt /app/
WORKDIR /app
RUN /bin/bash -c "pip3 install --no-cache-dir -r requirements.txt"

ADD /app/ /app/

EXPOSE 3000

CMD ["gunicorn", "-b", "0.0.0.0:3000", "wsgi", "-k", "gevent"]


================================================
FILE: aws/aws-ecs/python/README.md
================================================
# Getting Started with Waypoint and Flask

This is a slightly-modified version of the docker/python example, with changes
to publish to AWS ECR and deploy to AWS ECS, instead of a local Docker setup.

1. Run `waypoint init` in this example directory with `waypoint.hcl`.
1. Run `waypoint up` to build and deploy the application.

For more information on Flask, see [https://palletsprojects.com/p/flask/](https://palletsprojects.com/p/flask/).


================================================
FILE: aws/aws-ecs/python/app/app.py
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

from flask import Flask, render_template
application = Flask(__name__)

@application.route("/")
def index():
    return (render_template('index.html'))

if __name__ == "__main__":
    application.run(host='0.0.0.0')


================================================
FILE: aws/aws-ecs/python/app/static/images/language.svg.old
================================================
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="56" viewBox="0 0 50 56">
  <path fill="#04C6C2" fill-rule="evenodd" d="M42.1698094,12.5509308 L62.8294149,24.409428 C64.1673476,25.1779059 65,26.6105829 65,28.1495934 L65,51.8321707 C65,53.3706675 64.1673476,54.8023171 62.8294149,55.5759319 L42.1698094,67.4241553 C41.5093764,67.803771 40.7599892,68 39.9945697,68 C39.2400108,68 38.4880377,67.803771 37.8281219,67.4241553 L30.9295193,63.3701263 C30.1684395,62.9471597 30.2448084,62.7259697 30.4734419,62.5918498 L30.5593427,62.547942 L30.5593427,62.547942 L30.7423018,62.4773358 L30.7423018,62.4773358 L31.4149203,62.242212 L31.4149203,62.242212 L31.779433,62.1070337 L31.779433,62.1070337 L32.1080787,61.9743355 L32.1080787,61.9743355 L32.4276456,61.8314519 C32.4816385,61.8060855 32.5363691,61.779767 32.5923958,61.7522325 L32.9485721,61.5703226 L32.9485721,61.5703226 L33.3626397,61.3465631 L33.3626397,61.3465631 L33.8613867,61.0682885 L33.8613867,61.0682885 C34.0139534,60.9830162 34.2166861,61.0148649 34.3744246,61.1073288 L39.6739209,64.2326091 C39.865793,64.3379153 40.1367929,64.3379153 40.3136669,64.2326091 L60.9748239,52.3874678 C61.166696,52.2785659 61.2908181,52.0587072 61.2908181,51.8321707 L61.2908181,28.1495934 C61.2908181,27.9179199 61.166696,27.7011434 60.9696521,27.5835088 L40.3172871,15.7491549 C40.1264494,15.6381982 39.8730334,15.6381982 39.6806442,15.7491549 L19.0334509,27.5871046 C18.8327869,27.7011434 18.7055617,27.9240842 18.7055617,28.1495934 L18.7055617,51.8321707 C18.7055617,52.0587072 18.8327869,52.273429 19.0313822,52.3807899 L24.6913497,55.6288418 C27.7623372,57.1539827 29.6422698,55.358128 29.6422698,53.5530269 L29.6422698,30.16993 C29.6422698,29.840142 29.9101666,29.5791883 30.2432276,29.5791883 L32.862721,29.5791883 C33.1906102,29.5791883 33.4616101,29.840142 33.4616101,30.16993 L33.4616101,53.5530269 C33.4616101,57.6240076 31.2294811,59.9587215 27.3439423,59.9587215 L26.9664669,59.9571413 L26.9664669,59.9571413 L26.592177,59.9460801 L26.592177,59.9460801 L26.3373562,59.9287568 C26.2511213,59.9212656 26.1633564,59.9119017 26.0733551,59.9001967 L25.7959353,59.8575907 C25.2724419,59.7648876 24.6599273,59.5872065 23.8408635,59.2466512 L23.3729108,59.0442727 C23.1279859,58.9345388 22.8661085,58.8116369 22.5848943,58.6739867 L17.1669649,55.5759319 C15.828515,54.807454 15,53.3706675 15,51.8321707 L15,28.1495934 C15,26.6105829 15.828515,25.1743101 17.1669649,24.409428 L37.8281219,12.5509308 C39.1350242,11.8163564 40.8732507,11.8163564 42.1698094,12.5509308 Z M45.5479473,28.948533 C52.166758,28.948533 55.4420298,31.230337 55.8573217,36.1257876 C55.8723197,36.2947911 55.8123274,36.456603 55.699066,36.5829703 C55.5863217,36.7000913 55.4285832,36.7720077 55.2620528,36.7720077 L52.5804984,36.7720077 C52.302258,36.7720077 52.0565997,36.5757787 52.0002276,36.308147 C51.3879904,33.6012536 49.9393598,32.6485888 46.1362605,32.5639969 L45.5479473,32.5577078 L45.5479473,32.5577078 C42.1100954,32.5577078 40.8701514,33.4184701 40.4472384,34.3607707 L40.380807,34.5277469 C40.3613029,34.583582 40.3443448,34.6395406 40.3296517,34.6954642 L40.2920862,34.8629712 C40.2868641,34.8908186 40.282138,34.9186176 40.2778726,34.9463483 L40.2575299,35.1117554 C40.2549674,35.1391338 40.2527955,35.1664044 40.250979,35.1935473 L40.2432793,35.4338493 L40.2432793,35.4338493 L40.2439568,35.514233 L40.2439568,35.514233 L40.2499299,35.6689153 L40.2499299,35.6689153 L40.2632894,35.8158371 L40.2632894,35.8158371 L40.2855105,35.9554218 C40.2900344,35.978098 40.2949889,36.0004861 40.3004049,36.022595 L40.3386836,36.151968 C40.3903753,36.2991583 40.4676874,36.4335298 40.5811593,36.5581083 L40.6875223,36.6625621 C40.7068073,36.6795949 40.7268917,36.6964454 40.7478062,36.7131226 L40.8835011,36.8111754 L40.8835011,36.8111754 L41.0405941,36.90549 C41.0966887,36.9363523 41.1565955,36.9666621 41.2205604,36.9964901 L41.4248746,37.0845988 L41.4248746,37.0845988 L41.6550119,37.1702397 C41.695602,37.184331 41.7373295,37.1983372 41.7802251,37.212267 L42.0518623,37.295 L42.0518623,37.295 L42.3530099,37.3763237 L42.3530099,37.3763237 L42.6851426,37.4566614 L42.6851426,37.4566614 L43.0497354,37.5364367 L43.0497354,37.5364367 L43.4482633,37.6160729 L43.4482633,37.6160729 L44.1129097,37.7361926 L44.1129097,37.7361926 L44.8622064,37.858381 L44.8622064,37.858381 L45.7011311,37.9840672 L45.7011311,37.9840672 L47.991481,38.2976124 L47.991481,38.2976124 L48.6445718,38.3936231 L48.6445718,38.3936231 L49.2713969,38.4940683 L49.2713969,38.4940683 L49.8720479,38.5997856 C50.0679128,38.6359964 50.2594306,38.6732255 50.4466167,38.7116125 L50.9951951,38.8303868 C54.8337599,39.7084979 56.6770447,41.1863751 56.6770447,44.6514743 C56.6770447,49.123132 52.9233856,51.6838688 46.3764623,51.6838688 C38.6652403,51.6838688 36.1530348,48.6851975 35.5809161,45.6576954 L35.5285184,45.3445245 C35.5056463,45.1880094 35.4876639,45.0316911 35.4741205,44.8759806 L35.4528184,44.5654919 L35.4528184,44.5654919 L35.4425515,44.2573547 C35.4417155,44.206235 35.4413058,44.1552438 35.4413058,44.1043962 C35.4413058,43.7751219 35.7076511,43.5131408 36.0386433,43.5131408 L38.7098543,43.5131408 C39.0082645,43.5131408 39.2570258,43.7263215 39.3035716,44.0155281 L39.3571356,44.3395724 C39.3668075,44.3924649 39.3768713,44.4447999 39.3873565,44.4965772 L39.4555599,44.8005455 C39.9839672,46.9309915 41.4004376,48.0293047 46.0470124,48.0781276 L46.3764623,48.0798308 C50.7295276,48.0798308 52.5820499,47.1017681 52.5820499,44.8081493 L52.5768503,44.6022034 L52.5768503,44.6022034 L52.5660641,44.4680437 L52.5660641,44.4680437 L52.5476944,44.3363892 C52.5401428,44.2929215 52.5310804,44.2498705 52.5202605,44.2072356 L52.4822815,44.0805786 L52.4822815,44.0805786 L52.4322766,43.956414 C52.356928,43.7925208 52.2455615,43.6352626 52.0823819,43.4845938 L51.9500354,43.3728271 C51.9262763,43.354405 51.9016458,43.3360856 51.8761132,43.317869 L51.7118453,43.2098009 C51.6825808,43.1919947 51.6523525,43.174291 51.6211295,43.1566897 L51.4216084,43.0523106 C51.3509581,43.0179268 51.2760822,42.983952 51.1967341,42.9503854 L50.9450258,42.8509101 L50.9450258,42.8509101 L50.6650028,42.7538802 L50.6650028,42.7538802 L50.3551842,42.6592915 C50.3009825,42.64373 50.2454777,42.6282699 50.1886388,42.6129113 L49.8313502,42.5219766 L49.8313502,42.5219766 L49.4405641,42.4334724 L49.4405641,42.4334724 L49.0147996,42.3473945 L49.0147996,42.3473945 L48.5525758,42.2637386 L48.5525758,42.2637386 L48.052412,42.1825006 L48.052412,42.1825006 L47.5128273,42.1036761 L47.5128273,42.1036761 L46.626297,41.9899555 L46.626297,41.9899555 L45.6427402,41.8816413 L45.6427402,41.8816413 L44.980649,41.8151639 L44.980649,41.8151639 L44.3705353,41.7473964 C44.2703682,41.7355554 44.1709661,41.7234304 44.0723374,41.7110051 L43.4899149,41.6327184 L43.4899149,41.6327184 L42.926464,41.5464416 C42.8341592,41.5313528 42.7426619,41.5158985 42.6519806,41.5000625 L42.1177533,41.400334 L42.1177533,41.400334 L41.6035192,41.2906603 C38.1588271,40.5054625 36.1431128,38.9689103 36.1431128,35.5581619 C36.1431128,31.4178332 39.6568024,28.948533 45.5479473,28.948533 Z" transform="translate(-15 -12)"/>
</svg>


================================================
FILE: aws/aws-ecs/python/app/static/stylesheets/main.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #E4E5E7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #FFF;
}

* {
  margin: 0;
  padding: 0;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/static/images/pattern-tl.svg), url(/static/images/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

section .language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), .5);
  background: rgba(var(--brand), .15);
}

.language-image {
  width: 60px;
  height: 60px;
}

section h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

section p {
  padding-top: 12px;
}

section code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .15); 
}

section a {
  color: rgb(var(--brand));
}


================================================
FILE: aws/aws-ecs/python/app/templates/index.html
================================================
<!DOCTYPE html>
<!--
 Copyright (c) HashiCorp, Inc.
 SPDX-License-Identifier: MPL-2.0
-->

<html>
  <head>
<title>Waypoint Flask Example</title>
<link rel="stylesheet" type="text/css" href="/static/stylesheets/main.css" />
  </head>

  <body>
    <div class="container">
      <header>
        <a href="https://waypointproject.io" class="logo">
          <img src="/static/images/logo.svg" alt="Logo" />
        </a>
      </header>
      <section class="content">
        <div class="language-icon">
          <img class="language-image" src="/static/images/language.svg" alt="Flask Icon" />
        </div>
        <h1>This Flask app was deployed with Waypoint.</h1>
        <p>
          Try making a change to this text locally and run <code>waypoint up</code> again to see it.
        </p>
        <p>
          Read the <a href="https://waypointproject.io/docs">documentation</a> for more about Waypoint.
        </p>
      </section>
      <footer>
        <a href="https://hashicorp.com" class="hashi">
          <img src="/static/images/hashi.svg" alt="HashiCorp" />
        </a>
      </footer>
    </div>
  </body>
</html>



================================================
FILE: aws/aws-ecs/python/app/wsgi.py
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

from app import application

if __name__ == "__main__":
    application.run()


================================================
FILE: aws/aws-ecs/python/requirements.txt
================================================
gevent
gunicorn
flask


================================================
FILE: aws/aws-ecs/python/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "aws-ecs-python"

app "ecs-python" {
  labels = {
    "service" = "ecs-python",
    "env" = "dev"
  }

  build {
    use "docker" {}
    registry {
      use "aws-ecr" {
        region = "us-east-1"
        repository = "waypoint-example"
        tag = "latest"
      }
    }
  }

  deploy { 
    use "aws-ecs" {
      region = "us-east-1"
      memory = "512"
    }
  }
}


================================================
FILE: aws/ec2/README.md
================================================
# Waypoint AWS-EC2 Example

|Title|Description|
|---|---|
|Pack|N/A|
|Cloud|AWS|
|Language|N/A|
|Docs|[AWS-EC2](https://www.waypointproject.io/plugins/aws-ec2)|
|Tutorial|N/A|

This example demonstrates the AWS EC2 `deploy` plugin. This uses a public AMI
for [NGINX][nginx] in `us-west` region as a simple example.


[nginx]:https://bitnami.com/stack/nginx/cloud/aws/amis


================================================
FILE: aws/ec2/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "aws-ec2-nginx-ami"

app "ec2-nginx" {
  labels = {
    "service" = "ec2-nginx"
    "env"     = "dev"
  }

  build {
    use "aws-ami" {
      filters = {
        // See https://bitnami.com/stack/nginx/cloud/aws/amis
        "image-id" = ["ami-0562fde33e9671bf4"]
      }

      region = "us-west-2"
    }
  }

  deploy {
    use "aws-ec2" {
      region        = "us-west-2"
      instance_type = "t3a.nano"
      service_port  = 80
    }
  }

  release {
    use "aws-alb" {
      port = 80
    }
  }
}


================================================
FILE: aws/lambda/nodejs/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "aws-lambda-nodejs"

app "lambda-nodejs-function" {
  build {
   use "aws-ecr-pull" {
     region     = var.region
     repository = "lambda-nodejs"
     tag        = var.tag
   }
  }

  deploy {
    use "aws-lambda" {
      region = var.region
      memory = 512
    }
  }

  release {
    use "lambda-function-url" {

    }
  }
}

variable "region" {
  type = string
  default = "us-east-1"
}

variable "tag" {
  type = string
  default = "1"
}


================================================
FILE: aws/lambda/nodejs-graphql/.gitignore
================================================
node_modules


================================================
FILE: aws/lambda/nodejs-graphql/Dockerfile
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

###########
# Builder #
###########
FROM public.ecr.aws/lambda/nodejs:14 as BUILDER

WORKDIR /var/task
COPY index.js package*.json ./

RUN npm install npm@latest -g
RUN npm install
RUN npm prune --production

###########
# Runtime #
###########
FROM public.ecr.aws/lambda/nodejs:14

WORKDIR /var/task
COPY --from=BUILDER /var/task ./

CMD [ "index.handler" ]

================================================
FILE: aws/lambda/nodejs-graphql/README.md
================================================
# Waypoint Node.js GraphQL Example

|Title|Description|
|---|---|
|Pack|Docker|
|Cloud|AWS|
|Language|NodeJS|
|Docs|[AWS Lambda](https://www.waypointproject.io/plugins/aws-lambda)|
|Tutorial| N/A |

This example demonstrates the AWS Lambda `deploy` plugin.

It uses [`apollo-server-lambda`][apollo-server-lambda] to handle the mapping of various AWS event objects (API Gateway, ALB, Lambda@Edge) to lambda.

To deploy, run `waypoint up`. It will take a few minutes for a brand new load balancer to be fully provisioned.

To destroy, run `waypoint destroy -auto-approve`

[apollo-server-lambda]: https://github.com/apollographql/apollo-server/tree/main/packages/apollo-server-lambda

================================================
FILE: aws/lambda/nodejs-graphql/index.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

const { ApolloServer, gql } = require("apollo-server-lambda");
const {
  ApolloServerPluginLandingPageGraphQLPlayground,
} = require("apollo-server-core");

const typeDefs = gql`
  type Echo {
    message: String!
    echo(message: String): Echo!
  }

  type Query {
    echo(message: String!): Echo!
  }
`;

const resolvers = {
  Echo: {
    echo: (parent, args, { dataSources }, info) => {
      const parentMessage = parent.message;
      const { message } = args;

      if (message) {
        return { message };
      } else {
        return { message: parentMessage };
      }
    },
  },
  Query: {
    echo: (parent, args, context, info) => {
      const { message } = args;
      return { message };
    },
  },
};

const server = new ApolloServer({
  typeDefs: typeDefs,
  resolvers: resolvers,
  introspection: true,
  plugins: [ApolloServerPluginLandingPageGraphQLPlayground],
});

exports.handler = server.createHandler();

================================================
FILE: aws/lambda/nodejs-graphql/package.json
================================================
{
  "name": "waypoint-apollo-lambda",
  "version": "0.1.0",
  "description": "An Apollo GraphQL server intended to run on AWS Lambda",
  "main": "index.js",
  "dependencies": {
    "apollo-server-core": "^3.6.3",
    "apollo-server-lambda": "^3.6.3"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "node",
    "graphql"
  ],
  "license": "MIT"
}


================================================
FILE: aws/lambda/nodejs-graphql/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "waypoint-apollo-lambda"

app "waypoint-apollo-lambda-function" {
  build {
    use "docker" {
      buildkit = true
      platform = "amd64"
    }

    registry {
      use "aws-ecr" {
        region     = var.region
        repository = var.aws_ecr_repository
        tag        = gitrefpretty()
      }
    }
  }

  deploy {
    use "aws-lambda" {
      region = var.region
      memory = 256
    }
  }

  release {
    use "aws-alb" {}
  }
}

variable "aws_ecr_repository" {
  default     = "waypoint-apollo-lambda"
  type        = string
  description = "AWS ECR repository name"
}

variable "region" {
  default     = "us-east-1"
  type        = string
  description = "AWS region"
}

================================================
FILE: aws/lambda/ruby/Dockerfile
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

FROM public.ecr.aws/lambda/ruby:2.7

COPY handler.rb /var/task

CMD [ "handler.handler" ]

================================================
FILE: aws/lambda/ruby/README.md
================================================
# Getting Started with Waypoint and Lambda

This repo is a companion repo to the [Deploy Waypoint to AWS Lambda Learn tutorial](https://learn.hashicorp.com/tutorials/waypoint/aws-lambda?in=waypoint/deploy-aws).

================================================
FILE: aws/lambda/ruby/handler.rb
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

require 'json'

def handler(event:, context:)
    qs = event.fetch("queryStringParameters", {})

    name = qs.fetch("name", "unknown user")
   
    STDERR.puts "Handling ALB request for #{name}"

    {
        "statusCode": 200,
        "statusDescription": "200 OK",
        "isBase64Encoded": false,
        "headers": {
            "Content-Type": "text/html"
        },
        "body": "<html><body><h1>Howdy #{name} from Lambda!</h1></html></body>"
    }
end

================================================
FILE: aws/lambda/ruby/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "learn-waypoint-lambda"

app "learn-waypoint-lambda-function" {
  build {
    use "docker" {}

    registry {
      use "aws-ecr" {
        region = "us-west-2"
        repository = "learn-waypoint-lambda"
        tag = "howdy-waypoint-lambda"
      }
    }
  }

  deploy { 
    use "aws-lambda" {
      region = "us-west-2"
    }
  }

  release {
    use "aws-alb" {
    }
  }
}

================================================
FILE: azure/azure-container-instance/nodejs/.gitignore
================================================
# Node build artifacts
node_modules
npm-debug.log

# Local development
*.env
*.dev
.DS_Store

# Docker
Dockerfile
docker-compose.yml


================================================
FILE: azure/azure-container-instance/nodejs/Procfile
================================================
web: node index.js


================================================
FILE: azure/azure-container-instance/nodejs/README.md
================================================
# Waypoint ACI Example

|Title|Description|
|---|---|
|Pack|Cloud Native Buildpack|
|Cloud|Azure|
|Language|NodeJS|
|Docs|[Azure ACI](https://www.waypointproject.io/plugins/azure-container-instances)|
|Tutorial|[HashiCorp Learn](https://learn.hashicorp.com/tutorials/waypoint/azure-container-instance?in=waypoint/deploy-azure)|


================================================
FILE: azure/azure-container-instance/nodejs/index.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000

express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .listen(PORT, () => console.log(`Listening on ${ PORT }`))


================================================
FILE: azure/azure-container-instance/nodejs/package.json
================================================
{
  "name": "node-js-getting-started",
  "version": "0.3.0",
  "description": "A sample Node.js app using Express 4",
  "engines": {
    "node": "12.x"
  },
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "node test.js"
  },
  "dependencies": {
    "ejs": "^2.5.6",
    "express": "^4.15.2"
  },
  "devDependencies": {
    "got": "^11.3.0",
    "tape": "^4.7.0"
  },
  "keywords": [
    "node",
    "express"
  ],
  "license": "MIT"
}


================================================
FILE: azure/azure-container-instance/nodejs/public/stylesheets/main.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #E4E5E7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #FFF;
}

* {
  margin: 0;
  padding: 0;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/pattern-tl.svg), url(/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

section .language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), .5);
  background: rgba(var(--brand), .15);
}

section h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

section p {
  padding-top: 12px;
}

section code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .15); 
}

section a {
  color: rgb(var(--brand));
}

================================================
FILE: azure/azure-container-instance/nodejs/views/pages/index.ejs
================================================
<!DOCTYPE html>
<%/*
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: MPL-2.0
*/%>

<html>
  <head>
    <% include ../partials/header.ejs %>
  </head>

  <body>
    <div class="container">
      <header>
        <a href="https://waypointproject.io" class="logo">
          <img src="/logo.svg" alt="Logo" />
        </a>
      </header>
      <section class="content">
        <div class="language-icon">
          <img src="/language.svg" alt="Node.js Icon" />
        </div>
        <h1>This Node.js app was deployed with Waypoint.</h1>
        <p>
          Try making a change to this text locally and run <code>waypoint up</code> again to see it.
        </p>
        <p>
          Read the <a href="https://waypointproject.io/docs">documentation</a> for more about Waypoint.
        </p>
      </section>
      <footer>
        <a href="https://hashicorp.com" class="hashi">
          <img src="/hashi.svg" alt="HashiCorp" />
        </a>
      </footer>
    </div>
  </body>
</html>


================================================
FILE: azure/azure-container-instance/nodejs/views/partials/header.ejs
================================================
<%/*
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: MPL-2.0
*/%>

<title>Waypoint Node.js Example</title>
<link rel="stylesheet" type="text/css" href="/stylesheets/main.css" />


================================================
FILE: azure/azure-container-instance/nodejs/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "azure-container-nodejs"

app "container-nodejs-web" {
  labels = {
    "service" = "nodejs-web",
    "env"     = "dev"
  }

  build {
    use "pack" {}

    registry {
      use "docker" {
        image = "<my-container-registry>.azurecr.io/example-nodejs"
        tag   = "latest"
      }
    }
  }

  deploy {
    use "azure-container-instance" {
      resource_group = "DefaultResourceGroup-EUS"
      location       = "eastus"
      ports          = [8080]

      capacity {
        memory    = "512"
        cpu_count = 1
      }

    }
  }

}


================================================
FILE: docker/angular/Procfile
================================================
web: node server.js


================================================
FILE: docker/angular/README.md
================================================
# Angular Waypoint Demo Application

![Angular Waypoint](angular-waypoint.png)

This application deploys an Angular based application, built in Waypoint using the
[pack builder](https://www.waypointproject.io/docs/lifecycle/build#cloud-native-buildpacks)
, with a [Procfile](https://www.waypointproject.io/docs/lifecycle/build#customizing-the-buildpack-launch-command)
to control the hosting server process.

During Waypoint's `build` phase the Buildpack detects the language type and generates the
static files using the `build` command located in the `package.json` file. In this case,
the Buildpack also detects the presence of the Procfile, and uses the command contained
within to launch the server process. In the case of this deployment, it uses NodeJS (the
`node` command) to launch an ExpressJS server to host the static files.

## Customization of the Angular Application

To change aspects of the application, you can edit the `src/app/app.component.html`
component file. SCSS files can be customized by either applying them to the component's
SCSS file at `src/app/app.component.scss` or at the global SCSS file (`styles.scss`) in
the root directory.

## Deploying the Application

To deploy this application, initialize against against a Waypoint server by issuing a
`waypoint init` command. Once registered against a server, and execute the `waypoint up`
command.


================================================
FILE: docker/angular/angular.json
================================================
{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "angular": {
      "projectType": "application",
      "schematics": {
        "@schematics/angular:component": {
          "style": "scss"
        }
      },
      "root": "",
      "sourceRoot": "src",
      "prefix": "app",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/angular",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "tsconfig.app.json",
            "aot": false,
            "assets": ["src/favicon.ico", "src/assets"],
            "styles": ["src/styles.scss"],
            "scripts": []
          },
          "configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "2mb",
                  "maximumError": "5mb"
                },
                {
                  "type": "anyComponentStyle",
                  "maximumWarning": "6kb",
                  "maximumError": "10kb"
                }
              ]
            }
          }
        },
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "angular:build"
          },
          "configurations": {
            "production": {
              "browserTarget": "angular:build:production"
            }
          }
        },
        "extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n",
          "options": {
            "browserTarget": "angular:build"
          }
        },
        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "tsconfig.spec.json",
            "karmaConfig": "karma.conf.js",
            "assets": ["src/favicon.ico", "src/assets"],
            "styles": ["src/styles.scss"],
            "scripts": []
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": [
              "tsconfig.app.json",
              "tsconfig.spec.json",
              "e2e/tsconfig.json"
            ],
            "exclude": ["**/node_modules/**"]
          }
        },
        "e2e": {
          "builder": "@angular-devkit/build-angular:protractor",
          "options": {
            "protractorConfig": "e2e/protractor.conf.js",
            "devServerTarget": "angular:serve"
          },
          "configurations": {
            "production": {
              "devServerTarget": "angular:serve:production"
            }
          }
        }
      }
    }
  },
  "defaultProject": "angular"
}


================================================
FILE: docker/angular/browserslist
================================================
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries

# You can see what browsers were selected by your queries by running:
#   npx browserslist

> 0.5%
last 2 versions
Firefox ESR
not dead
not IE 9-11 # For IE 9-11 support, remove 'not'.

================================================
FILE: docker/angular/e2e/protractor.conf.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

// @ts-check
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts

const { SpecReporter } = require('jasmine-spec-reporter');

/**
 * @type { import("protractor").Config }
 */
exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './src/**/*.e2e-spec.ts'
  ],
  capabilities: {
    browserName: 'chrome'
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  },
  onPrepare() {
    require('ts-node').register({
      project: require('path').join(__dirname, './tsconfig.json')
    });
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
  }
};

================================================
FILE: docker/angular/e2e/src/app.e2e-spec.ts
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

import { AppPage } from './app.po';
import { browser, logging } from 'protractor';

describe('workspace-project App', () => {
  let page: AppPage;

  beforeEach(() => {
    page = new AppPage();
  });

  it('should display welcome message', () => {
    page.navigateTo();
    expect(page.getTitleText()).toEqual('angulardemo app is running!');
  });

  afterEach(async () => {
    // Assert that there are no errors emitted from the browser
    const logs = await browser.manage().logs().get(logging.Type.BROWSER);
    expect(logs).not.toContain(jasmine.objectContaining({
      level: logging.Level.SEVERE,
    } as logging.Entry));
  });
});


================================================
FILE: docker/angular/e2e/src/app.po.ts
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

import { browser, by, element } from 'protractor';

export class AppPage {
  navigateTo() {
    return browser.get(browser.baseUrl) as Promise<any>;
  }

  getTitleText() {
    return element(by.css('app-root .content span')).getText() as Promise<string>;
  }
}


================================================
FILE: docker/angular/e2e/tsconfig.json
================================================
{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/e2e",
    "module": "commonjs",
    "target": "es5",
    "types": ["jasmine", "jasminewd2", "node"]
  }
}


================================================
FILE: docker/angular/karma.conf.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html

module.exports = function (config) {
  config.set({
    basePath: "",
    frameworks: ["jasmine", "@angular-devkit/build-angular"],
    plugins: [
      require("karma-jasmine"),
      require("karma-chrome-launcher"),
      require("karma-jasmine-html-reporter"),
      require("karma-coverage-istanbul-reporter"),
      require("@angular-devkit/build-angular/plugins/karma"),
    ],
    client: {
      clearContext: false, // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require("path").join(__dirname, "./coverage/angular"),
      reports: ["html", "lcovonly", "text-summary"],
      fixWebpackSourcePaths: true,
    },
    reporters: ["progress", "kjhtml"],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ["Chrome"],
    singleRun: false,
    restartOnFileChange: true,
  });
};


================================================
FILE: docker/angular/package.json
================================================
{
  "name": "angular",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~8.2.14",
    "@angular/common": "~8.2.14",
    "@angular/compiler": "~8.2.14",
    "@angular/core": "~8.2.14",
    "@angular/forms": "~8.2.14",
    "@angular/platform-browser": "~8.2.14",
    "@angular/platform-browser-dynamic": "~8.2.14",
    "@angular/router": "~8.2.14",
    "ejs": "^3.1.5",
    "express": "^4.17.1",
    "rxjs": "~6.4.0",
    "tslib": "^1.10.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.803.23",
    "@angular/cli": "~8.3.23",
    "@angular/compiler-cli": "~8.2.14",
    "@angular/language-service": "~8.2.14",
    "@types/node": "~8.9.4",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.15.0",
    "typescript": "~3.5.3"
  }
}


================================================
FILE: docker/angular/server.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000

express()
  .use(express.static(path.join(__dirname, 'dist/angular/')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .listen(PORT, () => console.log(`Listening on ${ PORT }`))




================================================
FILE: docker/angular/src/app/app.component.html
================================================
<!DOCTYPE html>
<!--
 Copyright (c) HashiCorp, Inc.
 SPDX-License-Identifier: MPL-2.0
-->

<html>
  <head>
    <title>Waypoint Angular Example</title>
  </head>

  <body>
    <div class="container">
      <header>
        <a href="https://waypointproject.io" class="logo">
          <img src="/assets/logo.svg" alt="Logo" />
        </a>
      </header>
      <section class="content">
        <div class="language-icon">
          <img class="logo" src="/assets/language.svg" alt="Angular Icon" />
        </div>
        <h1>This Angular app was deployed with Waypoint.</h1>
        <p>
          Try making a change to this text locally and run
          <code>waypoint up</code> again to see it.
        </p>
        <p>
          Read the
          <a href="https://waypointproject.io/docs">documentation</a> for more
          about Waypoint.
        </p>
      </section>
      <footer>
        <a href="https://hashicorp.com" class="hashi">
          <img src="/assets/hashi.svg" alt="HashiCorp" />
        </a>
      </footer>
    </div>
  </body>
</html>


================================================
FILE: docker/angular/src/app/app.component.scss
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */



================================================
FILE: docker/angular/src/app/app.component.spec.ts
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

import { TestBed, async } from '@angular/core/testing';
import { AppComponent } from './app.component';

describe('AppComponent', () => {
  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [
        AppComponent
      ],
    }).compileComponents();
  }));

  it('should create the app', () => {
    const fixture = TestBed.createComponent(AppComponent);
    const app = fixture.debugElement.componentInstance;
    expect(app).toBeTruthy();
  });

  it(`should have as title 'angulardemo'`, () => {
    const fixture = TestBed.createComponent(AppComponent);
    const app = fixture.debugElement.componentInstance;
    expect(app.title).toEqual('angulardemo');
  });

  it('should render title', () => {
    const fixture = TestBed.createComponent(AppComponent);
    fixture.detectChanges();
    const compiled = fixture.debugElement.nativeElement;
    expect(compiled.querySelector('.content span').textContent).toContain('angulardemo app is running!');
  });
});


================================================
FILE: docker/angular/src/app/app.component.ts
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  title = 'angulardemo';
}


================================================
FILE: docker/angular/src/app/app.module.ts
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }


================================================
FILE: docker/angular/src/assets/.gitkeep
================================================


================================================
FILE: docker/angular/src/environments/environment.prod.ts
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

export const environment = {
  production: true
};


================================================
FILE: docker/angular/src/environments/environment.ts
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

// This file can be replaced during build by using the `fileReplacements` array.
// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
// The list of file replacements can be found in `angular.json`.

export const environment = {
  production: false
};

/*
 * For easier debugging in development mode, you can import the following file
 * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
 *
 * This import should be commented out in production mode because it will have a negative impact
 * on performance if an error is thrown.
 */
// import 'zone.js/dist/zone-error';  // Included with Angular CLI.


================================================
FILE: docker/angular/src/index.html
================================================
<!doctype html>
<!--
 Copyright (c) HashiCorp, Inc.
 SPDX-License-Identifier: MPL-2.0
-->

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Angular on Waypoint</title>
  <base href="/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
</body>
</html>


================================================
FILE: docker/angular/src/main.ts
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import { environment } from './environments/environment';

if (environment.production) {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.error(err));


================================================
FILE: docker/angular/src/polyfills.ts
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

/**
 * This file includes polyfills needed by Angular and is loaded before the app.
 * You can add your own extra polyfills to this file.
 *
 * This file is divided into 2 sections:
 *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
 *   2. Application imports. Files imported after ZoneJS that should be loaded before your main
 *      file.
 *
 * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
 * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
 * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
 *
 * Learn more in https://angular.io/guide/browser-support
 */

/***************************************************************************************************
 * BROWSER POLYFILLS
 */

/** IE10 and IE11 requires the following for NgClass support on SVG elements */
// import 'classlist.js';  // Run `npm install --save classlist.js`.

/**
 * Web Animations `@angular/platform-browser/animations`
 * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
 * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
 */
// import 'web-animations-js';  // Run `npm install --save web-animations-js`.

/**
 * By default, zone.js will patch all possible macroTask and DomEvents
 * user can disable parts of macroTask/DomEvents patch by setting following flags
 * because those flags need to be set before `zone.js` being loaded, and webpack
 * will put import in the top of bundle, so user need to create a separate file
 * in this directory (for example: zone-flags.ts), and put the following flags
 * into that file, and then add the following code before importing zone.js.
 * import './zone-flags.ts';
 *
 * The flags allowed in zone-flags.ts are listed here.
 *
 * The following flags will work for all browsers.
 *
 * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
 * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
 * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
 *
 *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
 *  with the following flag, it will bypass `zone.js` patch for IE/Edge
 *
 *  (window as any).__Zone_enable_cross_context_check = true;
 *
 */

/***************************************************************************************************
 * Zone JS is required by default for Angular itself.
 */
import 'zone.js/dist/zone';  // Included with Angular CLI.


/***************************************************************************************************
 * APPLICATION IMPORTS
 */


================================================
FILE: docker/angular/src/styles.scss
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #e4e5e7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #fff;
}

* {
  margin: 0;
  padding: 0;
}

html,
body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen",
    "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
    "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/assets/pattern-tl.svg), url(/assets/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

section .language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), 0.5);
  background: rgba(var(--brand), 0.15);
}

img.logo {
  max-width: 60px;
  max-height: 60px;
}

section h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

section p {
  padding-top: 12px;
}

section code {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier,
    monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.15);
}

section a {
  color: rgb(var(--brand));
}


================================================
FILE: docker/angular/src/test.ts
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

// This file is required by karma.conf.js and loads recursively all the .spec and framework files

import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

declare const require: any;

// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);


================================================
FILE: docker/angular/tsconfig.app.json
================================================
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/app",
    "types": []
  },
  "files": [
    "src/main.ts",
    "src/polyfills.ts"
  ],
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "src/test.ts",
    "src/**/*.spec.ts"
  ]
}


================================================
FILE: docker/angular/tsconfig.json
================================================
{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ]
  },
  "angularCompilerOptions": {
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true
  }
}


================================================
FILE: docker/angular/tsconfig.spec.json
================================================
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./out-tsc/spec",
    "types": [
      "jasmine",
      "node"
    ]
  },
  "files": [
    "src/test.ts",
    "src/polyfills.ts"
  ],
  "include": [
    "src/**/*.spec.ts",
    "src/**/*.d.ts"
  ]
}


================================================
FILE: docker/angular/tslint.json
================================================
{
  "extends": "tslint:recommended",
  "rules": {
    "array-type": false,
    "arrow-parens": false,
    "deprecation": {
      "severity": "warning"
    },
    "component-class-suffix": true,
    "contextual-lifecycle": true,
    "directive-class-suffix": true,
    "directive-selector": [
      true,
      "attribute",
      "app",
      "camelCase"
    ],
    "component-selector": [
      true,
      "element",
      "app",
      "kebab-case"
    ],
    "import-blacklist": [
      true,
      "rxjs/Rx"
    ],
    "interface-name": false,
    "max-classes-per-file": false,
    "max-line-length": [
      true,
      140
    ],
    "member-access": false,
    "member-ordering": [
      true,
      {
        "order": [
          "static-field",
          "instance-field",
          "static-method",
          "instance-method"
        ]
      }
    ],
    "no-consecutive-blank-lines": false,
    "no-console": [
      true,
      "debug",
      "info",
      "time",
      "timeEnd",
      "trace"
    ],
    "no-empty": false,
    "no-inferrable-types": [
      true,
      "ignore-params"
    ],
    "no-non-null-assertion": true,
    "no-redundant-jsdoc": true,
    "no-switch-case-fall-through": true,
    "no-var-requires": false,
    "object-literal-key-quotes": [
      true,
      "as-needed"
    ],
    "object-literal-sort-keys": false,
    "ordered-imports": false,
    "quotemark": [
      true,
      "single"
    ],
    "trailing-comma": false,
    "no-conflicting-lifecycle": true,
    "no-host-metadata-property": true,
    "no-input-rename": true,
    "no-inputs-metadata-property": true,
    "no-output-native": true,
    "no-output-on-prefix": true,
    "no-output-rename": true,
    "no-outputs-metadata-property": true,
    "template-banana-in-box": true,
    "template-no-negated-async": true,
    "use-lifecycle-interface": true,
    "use-pipe-transform-interface": true
  },
  "rulesDirectory": [
    "codelyzer"
  ]
}

================================================
FILE: docker/angular/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "angular-example"

app "angular" {
  build {
    use "pack" {}
  }

  deploy {
    use "docker" {
    }
  }
}


================================================
FILE: docker/aspnetapp/.dockerignore
================================================
bin/
obj/

================================================
FILE: docker/aspnetapp/.gitignore
================================================
bin/*
obj/*
out/*

================================================
FILE: docker/aspnetapp/Pages/Error.cshtml
================================================
@page
@model ErrorModel
@{
    ViewData["Title"] = "Error";
}

<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>

@if (Model.ShowRequestId)
{
    <p>
        <strong>Request ID:</strong> <code>@Model.RequestId</code>
    </p>
}

<h3>Development Mode</h3>
<p>
    Swapping to the <strong>Development</strong> environment displays detailed information about the error that occurred.
</p>
<p>
    <strong>The Development environment shouldn't be enabled for deployed applications.</strong>
    It can result in displaying sensitive information from exceptions to end users.
    For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
    and restarting the app.
</p>


================================================
FILE: docker/aspnetapp/Pages/Error.cshtml.cs
================================================
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;

namespace aspnetapp.Pages
{
    [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
    public class ErrorModel : PageModel
    {
        public string RequestId { get; set; }

        public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);

        private readonly ILogger<ErrorModel> _logger;

        public ErrorModel(ILogger<ErrorModel> logger)
        {
            _logger = logger;
        }

        public void OnGet()
        {
            RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
        }
    }
}


================================================
FILE: docker/aspnetapp/Pages/Index.cshtml
================================================
@page
@model IndexModel
@{
    ViewData["Title"] = "ASP.NET on Waypoint";
}

<h1>This ASP.NET app was deployed with Waypoint.</h1>
<p>
    Try making a change to this text locally and run <code>waypoint up</code> again to see it.
</p>
<p>
    Read the <a href="https://waypointproject.io/docs">documentation</a> for more about Waypoint.
</p>


================================================
FILE: docker/aspnetapp/Pages/Index.cshtml.cs
================================================
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;

namespace aspnetapp.Pages
{
    public class IndexModel : PageModel
    {
        private readonly ILogger<IndexModel> _logger;

        public IndexModel(ILogger<IndexModel> logger)
        {
            _logger = logger;
        }

        public void OnGet()
        {

        }
    }
}


================================================
FILE: docker/aspnetapp/Pages/Privacy.cshtml
================================================
@page
@model PrivacyModel
@{
    ViewData["Title"] = "Privacy Policy";
}
<h1>@ViewData["Title"]</h1>

<p>Use this page to detail your site's privacy policy.</p>


================================================
FILE: docker/aspnetapp/Pages/Privacy.cshtml.cs
================================================
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;

namespace aspnetapp.Pages
{
    public class PrivacyModel : PageModel
    {
        private readonly ILogger<PrivacyModel> _logger;

        public PrivacyModel(ILogger<PrivacyModel> logger)
        {
            _logger = logger;
        }

        public void OnGet()
        {
        }
    }
}


================================================
FILE: docker/aspnetapp/Pages/Shared/_Layout.cshtml
================================================
<!DOCTYPE html>
<html>

<head>
    <title>@ViewData["Title"] - Waypoint</title>
    <link rel="stylesheet" type="text/css" href="/static/stylesheets/main.css" />
</head>

<body>
    <div class="container">
        <header>
            <a href="https://waypointproject.io" class="logo">
                <img src="/static/images/logo.svg" alt="Logo" />
            </a>
        </header>
        <section class="content">
            <div class="language-icon">
                <img class="language-image" src="/static/images/language.svg" alt="Flask Icon" />
            </div>
            @RenderBody()
        </section>
        <footer>
            <a href="https://hashicorp.com" class="hashi">
                <img src="/static/images/hashi.svg" alt="HashiCorp" />
            </a>
        </footer>
    </div>
</body>

</html>

================================================
FILE: docker/aspnetapp/Pages/Shared/_ValidationScriptsPartial.cshtml
================================================
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>


================================================
FILE: docker/aspnetapp/Pages/_ViewImports.cshtml
================================================
@using aspnetapp
@namespace aspnetapp.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers


================================================
FILE: docker/aspnetapp/Pages/_ViewStart.cshtml
================================================
@{
    Layout = "_Layout";
}


================================================
FILE: docker/aspnetapp/Program.cs
================================================
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

namespace aspnetapp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}


================================================
FILE: docker/aspnetapp/Properties/launchSettings.json
================================================
{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:62275",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "aspnetapp": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "publicdev": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "http://+:80",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

================================================
FILE: docker/aspnetapp/README.md
================================================
# Waypoint ASP.NET Example

|Title|Description|
|---|---|
|Pack|Cloud Native Buildpack|
|Cloud|Local|
|Language|ASP.NET|
|Docs|[Docker](https://www.waypointproject.io/plugins/docker)|
|Tutorial|[HashiCorp Learn](https://learn.hashicorp.com/tutorials/waypoint/get-started-docker)|

A barebones ASP.NET app (via [Microsoft docs](https://dotnet.microsoft.com/learn/aspnet/hello-world-tutorial/intro)) which can easily be deployed by Waypoint.

Under `Properties/launchSettings.json`, you must set `"applicationUrl": "http://+:80"` so it is accessible outside the container.

The buildpack defaults to port `8080`, so you must set `service_port = 8080` in the `deploy` stanza (as shown in `waypoint.hcl`).

================================================
FILE: docker/aspnetapp/Startup.cs
================================================
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace aspnetapp
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddRazorPages();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
            }

            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
            });
        }
    }
}


================================================
FILE: docker/aspnetapp/appsettings.Development.json
================================================
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  }
}


================================================
FILE: docker/aspnetapp/appsettings.json
================================================
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}


================================================
FILE: docker/aspnetapp/aspnetapp.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

</Project>


================================================
FILE: docker/aspnetapp/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "example-dotnet"

app "web" {
  labels = {
    "service" = "example-dotnet",
    "env"     = "dev"
  }
  build {
    use "pack" {
      builder = "paketobuildpacks/builder:full"
    }
  }

  # Deploy to Docker
  deploy {
    use "docker" {
      service_port = 8080
    }
  }
}


================================================
FILE: docker/aspnetapp/wwwroot/static/stylesheets/main.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #E4E5E7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #FFF;
}

* {
  margin: 0;
  padding: 0;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/static/images/pattern-tl.svg), url(/static/images/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

section .language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), .5);
  background: rgba(var(--brand), .15);
}

.language-image {
  width: 60px;
  height: 60px;
}

section h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

section p {
  padding-top: 12px;
}

section code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .15); 
}

section a {
  color: rgb(var(--brand));
}


================================================
FILE: docker/go/README.md
================================================
# Waypoint Go Example

| Title    | Description                                                                          |
| -------- | ------------------------------------------------------------------------------------ |
| Pack     | Cloud Native Buildpack                                                               |
| Cloud    | Local                                                                                |
| Language | Go                                                                                   |
| Docs     | [Docker](https://www.waypointproject.io/plugins/docker)                              |
| Tutorial | [HashiCorp Learn](https://learn.hashicorp.com/tutorials/waypoint/get-started-docker) |

A barebones Go API, which can easily be deployed by Waypoint.


================================================
FILE: docker/go/go.mod
================================================
module github.com/hashicorp/waypoint-examples/docker/go

// +heroku goVersion go1.15
go 1.15


================================================
FILE: docker/go/main.go
================================================
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package main

import (
	"fmt"
	"log"
	"net/http"
)

func main() {
	fileServer := http.FileServer(http.Dir("./static"))
	http.Handle("/", fileServer)

	fmt.Printf("Starting server at: http://localhost:3000\n")
	if err := http.ListenAndServe(":3000", nil); err != nil {
		log.Fatal(err)
	}
}


================================================
FILE: docker/go/static/index.html
================================================
<!DOCTYPE html>
<!--
 Copyright (c) HashiCorp, Inc.
 SPDX-License-Identifier: MPL-2.0
-->

<html>

<head>
  <title>Waypoint Go Example</title>
  <link rel="stylesheet" type="text/css" href="/static/stylesheets/main.css" />
</head>

<body>
  <div class="container">
    <header>
      <a href="https://waypointproject.io" class="logo">
        <img src="/static/images/logo.svg" alt="Logo" />
      </a>
    </header>
    <section class="content">
      <div class="language-icon">
        <img class="language-image" src="/static/images/language.svg" alt="Icon" />
      </div>
      <h1>This static HTML app was deployed with Waypoint using Go.</h1>
      <p>
        Try making a change to this text locally and run <code>waypoint up</code> again to see it.
      </p>
      <p>
        Read the <a href="https://waypointproject.io/docs">documentation</a> for more about Waypoint.
      </p>
    </section>
    <footer>
      <a href="https://hashicorp.com" class="hashi">
        <img src="/static/images/hashi.svg" alt="HashiCorp" />
      </a>
    </footer>
  </div>
</body>

</html>


================================================
FILE: docker/go/static/static/stylesheets/main.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #E4E5E7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #FFF;
}

* {
  margin: 0;
  padding: 0;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/static/images/pattern-tl.svg), url(/static/images/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

section .language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), .5);
  background: rgba(var(--brand), .15);
}

.language-image {
  width: 60px;
  height: 60px;
}

section h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

section p {
  padding-top: 12px;
}

section code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .15); 
}

section a {
  color: rgb(var(--brand));
}


================================================
FILE: docker/go/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "example-go"

app "example-go" {
  labels = {
    "service" = "example-go",
    "env"     = "dev"
  }

  build {
    use "pack" {}
  }

  deploy {
    use "docker" {}
  }
}


================================================
FILE: docker/go-multiapp/README.md
================================================
# Waypoint Go Example

| Title    | Description                                                                          |
| -------- | ------------------------------------------------------------------------------------ |
| Pack     | Cloud Native Buildpack                                                               |
| Cloud    | Local                                                                                |
| Language | Go                                                                                   |
| Docs     | [Docker](https://www.waypointproject.io/plugins/docker)                              |
| Tutorial | [HashiCorp Learn](https://learn.hashicorp.com/tutorials/waypoint/get-started-docker) |

A barebones Go API, which can easily be deployed by Waypoint.


================================================
FILE: docker/go-multiapp/go.mod
================================================
module github.com/hashicorp/waypoint-examples/docker/go-multiapp

// +heroku goVersion go1.17
go 1.17


================================================
FILE: docker/go-multiapp/main.go
================================================
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package main

import (
	"fmt"
	"log"
	"net/http"
)

func main() {
	fileServer := http.FileServer(http.Dir("./static"))
	http.Handle("/", fileServer)

	fmt.Printf("Starting server at: http://localhost:3000\n")
	if err := http.ListenAndServe(":3000", nil); err != nil {
		log.Fatal(err)
	}
}


================================================
FILE: docker/go-multiapp/static/index.html
================================================
<!DOCTYPE html>
<!--
 Copyright (c) HashiCorp, Inc.
 SPDX-License-Identifier: MPL-2.0
-->

<html>

<head>
  <title>Waypoint Go Example</title>
  <link rel="stylesheet" type="text/css" href="/static/stylesheets/main.css" />
</head>

<body>
  <div class="container">
    <header>
      <a href="https://waypointproject.io" class="logo">
        <img src="/static/images/logo.svg" alt="Logo" />
      </a>
    </header>
    <section class="content">
      <div class="language-icon">
        <img class="language-image" src="/static/images/language.svg" alt="Icon" />
      </div>
      <h1>This static HTML app was deployed with Waypoint using Go.</h1>
      <p>
        Try making a change to this text locally and run <code>waypoint up</code> again to see it.
      </p>
      <p>
        Read the <a href="https://waypointproject.io/docs">documentation</a> for more about Waypoint.
      </p>
    </section>
    <footer>
      <a href="https://hashicorp.com" class="hashi">
        <img src="/static/images/hashi.svg" alt="HashiCorp" />
      </a>
    </footer>
  </div>
</body>

</html>


================================================
FILE: docker/go-multiapp/static/static/stylesheets/main.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #E4E5E7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #FFF;
}

* {
  margin: 0;
  padding: 0;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/static/images/pattern-tl.svg), url(/static/images/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

section .language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), .5);
  background: rgba(var(--brand), .15);
}

.language-image {
  width: 60px;
  height: 60px;
}

section h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

section p {
  padding-top: 12px;
}

section code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .15); 
}

section a {
  color: rgb(var(--brand));
}


================================================
FILE: docker/go-multiapp/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "example-go"

app "app-1" {
  labels = {
    "service" = "app-1",
    "env"     = "dev"
  }

  build {
    use "pack" {}
  }

  deploy {
    use "docker" {}
  }
}

app "app-2" {
  labels = {
    "service" = "app-2",
    "env"     = "dev"
  }

  build {
    use "pack" {}
  }

  deploy {
    use "docker" {}
  }
}


================================================
FILE: docker/java/.gitignore
================================================
target/
.env
.waypoint/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/

================================================
FILE: docker/java/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip

================================================
FILE: docker/java/README.md
================================================
# Java Getting Started

|Title|Description|
|---|---|
|Pack|Multiple (read notes below)|
|Cloud|Multiple|
|Language|Java|
|Docs|[Docker](https://www.waypointproject.io/plugins/docker)|
|Tutorial|[HashiCorp Learn](https://learn.hashicorp.com/tutorials/waypoint/get-started-docker)|

This is an example Java Spring application that can be deployed with Waypoint.

Waypoint defaults to using Heroku buildpacks if you do not specify a [builder variable](https://waypointproject.io/plugins/pack#builder) in the `waypoint.hcl` configuration section for `pack` within the `build` section. This example uses Heroku buildpacks by default.

This example also supports using [Cloud Foundry Paketo Buildpacks](https://paketo.io/docs/) and [Google Cloud Platform (GCP) Buildpacks](https://github.com/GoogleCloudPlatform/buildpacks).

# Deploying the example application.

1. Install a Waypoint Server up and ensure `waypoint context verify` is successful.
1. `waypoint init`
1. `waypoint up`
1. Visit a URL provided in the `waypoint` output.

## Configuring Waypoint for Cloud Foundry Paketo or GCP Buildpacks.

Copy the contents of `waypoint.hcl.paketo` or `waypoint.hcl.gcp` file into `waypoint.hcl` or run a command like `cp waypoint.hcl.paketo waypoint.hcl` from the base directory. Then you can run the `waypoint` commands as described above.

There are several `waypoint.hcl` adjustments to enable non-Heroku Buildpacks.
1. The `builder` variable of the `pack` build plugin should specify the a Paketo buildpacks builder image like `paketobuildpacks/builder:base` or  `gcr.io/buildpacks/builder:v1`. If no builder image is specified, Waypoint uses the Heroku builder image `heroku/buildpacks:18` by default.
1. The `service_port` variable of the deploy plugin explicity specifies port `8080` which is commonly used by Paketo and GCP buildpacks. The default Waypoint `service_port` is `3000`.

Here is a full `waypoint.hcl` example that works with Paketo buildpacks.

```
project = "example-java"

app "example-java" {
    build {
        use "pack" {
            builder="paketobuildpacks/builder:base"
        }
    }
    deploy {
        use "docker" {
            service_port=8080
        }
    }
}
```

Here is a full `waypoint.hcl` example that works with GCP buildpacks.

```
project = "example-java"

app "example-java" {
    build {
        use "pack" {
            builder="gcr.io/buildpacks/builder:v1"
        }
    }
    deploy {
        use "docker" {
            service_port=8080
        }
    }
}
```


================================================
FILE: docker/java/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.
# ----------------------------------------------------------------------------

# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
#   JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
#   M2_HOME - location of maven2's installed home dir
#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
#     e.g. to debug Maven itself, use
#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------

if [ -z "$MAVEN_SKIP_RC" ] ; then

  if [ -f /etc/mavenrc ] ; then
    . /etc/mavenrc
  fi

  if [ -f "$HOME/.mavenrc" ] ; then
    . "$HOME/.mavenrc"
  fi

fi

# OS specific support.  $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
  CYGWIN*) cygwin=true ;;
  MINGW*) mingw=true;;
  Darwin*) darwin=true
    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
    if [ -z "$JAVA_HOME" ]; then
      if [ -x "/usr/libexec/java_home" ]; then
        export JAVA_HOME="`/usr/libexec/java_home`"
      else
        export JAVA_HOME="/Library/Java/Home"
      fi
    fi
    ;;
esac

if [ -z "$JAVA_HOME" ] ; then
  if [ -r /etc/gentoo-release ] ; then
    JAVA_HOME=`java-config --jre-home`
  fi
fi

if [ -z "$M2_HOME" ] ; then
  ## resolve links - $0 may be a link to maven's home
  PRG="$0"

  # need this for relative symlinks
  while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
      PRG="$link"
    else
      PRG="`dirname "$PRG"`/$link"
    fi
  done

  saveddir=`pwd`

  M2_HOME=`dirname "$PRG"`/..

  # make it fully qualified
  M2_HOME=`cd "$M2_HOME" && pwd`

  cd "$saveddir"
  # echo Using m2 at $M2_HOME
fi

# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
  [ -n "$M2_HOME" ] &&
    M2_HOME=`cygpath --unix "$M2_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi

# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
  [ -n "$M2_HOME" ] &&
    M2_HOME="`(cd "$M2_HOME"; pwd)`"
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
  # TODO classpath?
fi

if [ -z "$JAVA_HOME" ]; then
  javaExecutable="`which javac`"
  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
    # readlink(1) is not available as standard on Solaris 10.
    readLink=`which readlink`
    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
      if $darwin ; then
        javaHome="`dirname \"$javaExecutable\"`"
        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
      else
        javaExecutable="`readlink -f \"$javaExecutable\"`"
      fi
      javaHome="`dirname \"$javaExecutable\"`"
      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
      JAVA_HOME="$javaHome"
      export JAVA_HOME
    fi
  fi
fi

if [ -z "$JAVACMD" ] ; then
  if [ -n "$JAVA_HOME"  ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
      # IBM's JDK on AIX uses strange locations for the executables
      JAVACMD="$JAVA_HOME/jre/sh/java"
    else
      JAVACMD="$JAVA_HOME/bin/java"
    fi
  else
    JAVACMD="`which java`"
  fi
fi

if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly." >&2
  echo "  We cannot execute $JAVACMD" >&2
  exit 1
fi

if [ -z "$JAVA_HOME" ] ; then
  echo "Warning: JAVA_HOME environment variable is not set."
fi

CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher

# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {

  if [ -z "$1" ]
  then
    echo "Path not specified to find_maven_basedir"
    return 1
  fi

  basedir="$1"
  wdir="$1"
  while [ "$wdir" != '/' ] ; do
    if [ -d "$wdir"/.mvn ] ; then
      basedir=$wdir
      break
    fi
    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
    if [ -d "${wdir}" ]; then
      wdir=`cd "$wdir/.."; pwd`
    fi
    # end of workaround
  done
  echo "${basedir}"
}

# concatenates all lines of a file
concat_lines() {
  if [ -f "$1" ]; then
    echo "$(tr -s '\n' ' ' < "$1")"
  fi
}

BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
  exit 1;
fi

export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
  echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"

# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
  [ -n "$M2_HOME" ] &&
    M2_HOME=`cygpath --path --windows "$M2_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi

WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain

exec "$JAVACMD" \
  $MAVEN_OPTS \
  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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
#
#    https://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.
# ----------------------------------------------------------------------------

# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
#   JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
#   M2_HOME - location of maven2's installed home dir
#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
#     e.g. to debug Maven itself, use
#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------

if [ -z "$MAVEN_SKIP_RC" ] ; then

  if [ -f /etc/mavenrc ] ; then
    . /etc/mavenrc
  fi

  if [ -f "$HOME/.mavenrc" ] ; then
    . "$HOME/.mavenrc"
  fi

fi

# OS specific support.  $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
  CYGWIN*) cygwin=true ;;
  MINGW*) mingw=true;;
  Darwin*) darwin=true
    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
    if [ -z "$JAVA_HOME" ]; then
      if [ -x "/usr/libexec/java_home" ]; then
        export JAVA_HOME="`/usr/libexec/java_home`"
      else
        export JAVA_HOME="/Library/Java/Home"
      fi
    fi
    ;;
esac

if [ -z "$JAVA_HOME" ] ; then
  if [ -r /etc/gentoo-release ] ; then
    JAVA_HOME=`java-config --jre-home`
  fi
fi

if [ -z "$M2_HOME" ] ; then
  ## resolve links - $0 may be a link to maven's home
  PRG="$0"

  # need this for relative symlinks
  while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
      PRG="$link"
    else
      PRG="`dirname "$PRG"`/$link"
    fi
  done

  saveddir=`pwd`

  M2_HOME=`dirname "$PRG"`/..

  # make it fully qualified
  M2_HOME=`cd "$M2_HOME" && pwd`

  cd "$saveddir"
  # echo Using m2 at $M2_HOME
fi

# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
  [ -n "$M2_HOME" ] &&
    M2_HOME=`cygpath --unix "$M2_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi

# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
  [ -n "$M2_HOME" ] &&
    M2_HOME="`(cd "$M2_HOME"; pwd)`"
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi

if [ -z "$JAVA_HOME" ]; then
  javaExecutable="`which javac`"
  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
    # readlink(1) is not available as standard on Solaris 10.
    readLink=`which readlink`
    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
      if $darwin ; then
        javaHome="`dirname \"$javaExecutable\"`"
        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
      else
        javaExecutable="`readlink -f \"$javaExecutable\"`"
      fi
      javaHome="`dirname \"$javaExecutable\"`"
      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
      JAVA_HOME="$javaHome"
      export JAVA_HOME
    fi
  fi
fi

if [ -z "$JAVACMD" ] ; then
  if [ -n "$JAVA_HOME"  ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
      # IBM's JDK on AIX uses strange locations for the executables
      JAVACMD="$JAVA_HOME/jre/sh/java"
    else
      JAVACMD="$JAVA_HOME/bin/java"
    fi
  else
    JAVACMD="`which java`"
  fi
fi

if [ ! -x "$JAVACMD" ] ; then
  echo "Error: JAVA_HOME is not defined correctly." >&2
  echo "  We cannot execute $JAVACMD" >&2
  exit 1
fi

if [ -z "$JAVA_HOME" ] ; then
  echo "Warning: JAVA_HOME environment variable is not set."
fi

CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher

# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {

  if [ -z "$1" ]
  then
    echo "Path not specified to find_maven_basedir"
    return 1
  fi

  basedir="$1"
  wdir="$1"
  while [ "$wdir" != '/' ] ; do
    if [ -d "$wdir"/.mvn ] ; then
      basedir=$wdir
      break
    fi
    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
    if [ -d "${wdir}" ]; then
      wdir=`cd "$wdir/.."; pwd`
    fi
    # end of workaround
  done
  echo "${basedir}"
}

# concatenates all lines of a file
concat_lines() {
  if [ -f "$1" ]; then
    echo "$(tr -s '\n' ' ' < "$1")"
  fi
}

BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
  exit 1;
fi

##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
    if [ "$MVNW_VERBOSE" = true ]; then
      echo "Found .mvn/wrapper/maven-wrapper.jar"
    fi
else
    if [ "$MVNW_VERBOSE" = true ]; then
      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
    fi
    if [ -n "$MVNW_REPOURL" ]; then
      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
    else
      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
    fi
    while IFS="=" read key value; do
      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
      esac
    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
    if [ "$MVNW_VERBOSE" = true ]; then
      echo "Downloading from: $jarUrl"
    fi
    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
    if $cygwin; then
      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
    fi

    if command -v wget > /dev/null; then
        if [ "$MVNW_VERBOSE" = true ]; then
          echo "Found wget ... using wget"
        fi
        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
            wget "$jarUrl" -O "$wrapperJarPath"
        else
            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
        fi
    elif command -v curl > /dev/null; then
        if [ "$MVNW_VERBOSE" = true ]; then
          echo "Found curl ... using curl"
        fi
        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
            curl -o "$wrapperJarPath" "$jarUrl" -f
        else
            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
        fi

    else
        if [ "$MVNW_VERBOSE" = true ]; then
          echo "Falling back to using Java to download"
        fi
        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
        # For Cygwin, switch paths to Windows format before running javac
        if $cygwin; then
          javaClass=`cygpath --path --windows "$javaClass"`
        fi
        if [ -e "$javaClass" ]; then
            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
                if [ "$MVNW_VERBOSE" = true ]; then
                  echo " - Compiling MavenWrapperDownloader.java ..."
                fi
                # Compiling the Java class
                ("$JAVA_HOME/bin/javac" "$javaClass")
            fi
            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
                # Running the downloader
                if [ "$MVNW_VERBOSE" = true ]; then
                  echo " - Running MavenWrapperDownloader.java ..."
                fi
                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
            fi
        fi
    fi
fi
##########################################################################################
# End of extension
##########################################################################################

export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
  echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"

# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
  [ -n "$M2_HOME" ] &&
    M2_HOME=`cygpath --path --windows "$M2_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi

# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS

WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain

exec "$JAVACMD" \
  $MAVEN_OPTS \
  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"


================================================
FILE: docker/java/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements.  See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership.  The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License.  You may obtain a copy of the License at
@REM
@REM    https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied.  See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------

@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM     e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------

@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%

@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")

@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre

@setlocal

set ERROR_CODE=0

@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal

@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome

echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error

:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init

echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error

@REM ==== END VALIDATION ====

:init

@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.

set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir

set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir

:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir

:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"

:endDetectBaseDir

IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig

@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%

:endReadAdditionalConfig

SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain

set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"

FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)

@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
    if "%MVNW_VERBOSE%" == "true" (
        echo Found %WRAPPER_JAR%
    )
) else (
    if not "%MVNW_REPOURL%" == "" (
        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
    )
    if "%MVNW_VERBOSE%" == "true" (
        echo Couldn't find %WRAPPER_JAR%, downloading it ...
        echo Downloading from: %DOWNLOAD_URL%
    )

    powershell -Command "&{"^
		"$webclient = new-object System.Net.WebClient;"^
		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
		"}"^
		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
		"}"
    if "%MVNW_VERBOSE%" == "true" (
        echo Finished downloading %WRAPPER_JAR%
    )
)
@REM End of extension

@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*

%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end

:error
set ERROR_CODE=1

:end
@endlocal & set ERROR_CODE=%ERROR_CODE%

if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost

@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause

if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%

exit /B %ERROR_CODE%


================================================
FILE: docker/java/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
 Copyright (c) HashiCorp, Inc.
 SPDX-License-Identifier: MPL-2.0
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>waypoint</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>waypoint</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>11</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>


================================================
FILE: docker/java/src/main/java/com/example/waypoint/WaypointApplication.java
================================================
/*
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

package com.example.waypoint;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@SpringBootApplication
public class WaypointApplication {

	public static void main(String[] args) {
		SpringApplication.run(WaypointApplication.class, args);
	}

	@RequestMapping("/")
	String index() {
	  return "index";
	}

}


================================================
FILE: docker/java/src/main/resources/application.properties
================================================



================================================
FILE: docker/java/src/main/resources/public/stylesheets/main.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #E4E5E7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #FFF;
}

* {
  margin: 0;
  padding: 0;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/pattern-tl.svg), url(/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

section .language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), .5);
  background: rgba(var(--brand), .15);
}

section h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

section p {
  padding-top: 12px;
}

section code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .15); 
}

section a {
  color: rgb(var(--brand));
}

================================================
FILE: docker/java/src/main/resources/templates/fragments/layout.html
================================================
<!doctype html>
<!--
 Copyright (c) HashiCorp, Inc.
 SPDX-License-Identifier: MPL-2.0
-->

<html th:fragment="layout (template, menu)">
<head>
    <title>Waypoint Java Example</title>
    <link rel="stylesheet" type="text/css" href="/stylesheets/main.css" />
</head>

<body>
    <div th:replace="${template}"/>

    <script th:src="@{/webjars/jquery/jquery.min.js}"></script>
    <script th:src="@{/webjars/jquery-ui/jquery-ui.min.js}"></script>
</body>


================================================
FILE: docker/java/src/main/resources/templates/index.html
================================================
<!DOCTYPE html>
<!--
 Copyright (c) HashiCorp, Inc.
 SPDX-License-Identifier: MPL-2.0
-->

<html xmlns:th="http://www.thymeleaf.org" th:replace="~{fragments/layout :: layout (~{::body},'index')}">

<body>

  <div class="container">
      <header>
        <a href="https://waypointproject.io" class="logo">
          <img src="/logo.svg" alt="Logo" />
        </a>
      </header>
      <section class="content">
        <div class="language-icon">
          <img src="/language.svg" alt="Java Icon" />
        </div>
        <h1>This Java app was deployed with Waypoint.</h1>
        <p>
          Try making a change to this text locally and run <code>waypoint up</code> again to see it.
        </p>
        <p>
          Read the <a href="https://waypointproject.io/docs">documentation</a> for more about Waypoint.
        </p>
      </section>
      <footer>
        <a href="https://hashicorp.com" class="hashi">
          <img src="/hashi.svg" alt="HashiCorp" />
        </a>
      </footer>
    </div>

</body>
</html>


================================================
FILE: docker/java/src/test/java/com/example/waypoint/WaypointApplicationTests.java
================================================
/*
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

package com.example.waypoint;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class WaypointApplicationTests {

	@Test
	void contextLoads() {
	}

}


================================================
FILE: docker/java/system.properties
================================================
java.runtime.version=11

================================================
FILE: docker/java/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "example-java"

app "example-java" {
  build {
    use "pack" {
      builder = "gcr.io/buildpacks/builder:v1"
    }
  }
  deploy {
    use "docker" {
      service_port = 8080
    }
  }
}


================================================
FILE: docker/java/waypoint.hcl.gcp
================================================
project = "example-java"

app "example-java" {
    build {
        use "pack" {
            builder="gcr.io/buildpacks/builder:v1"
        }
    }
    deploy {
        use "docker" {
          service_port=8080
        }
    }
}

================================================
FILE: docker/java/waypoint.hcl.heroku
================================================
project = "example-java"

app "example-java" {
    build {
        use "pack" {}
    }
    deploy {
        use "docker" {}
    }
}


================================================
FILE: docker/java/waypoint.hcl.paketo
================================================
project = "example-java"

app "example-java" {
    build {
        use "pack" {
            builder="paketobuildpacks/builder:base"
        }
    }
    deploy {
        use "docker" {
            service_port=8080
        }
    }
}

================================================
FILE: docker/next-js/.gitignore
================================================
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local

# vercel
.vercel


================================================
FILE: docker/next-js/README.md
================================================
# Waypoint Next.js Example

|Title|Description|
|---|---|
|Pack|Cloud Native Buildpack|
|Cloud|Local|
|Language|JavaScript|
|Docs|[Docker](https://www.waypointproject.io/plugins/docker)|
|Tutorial|[HashiCorp Learn](https://learn.hashicorp.com/tutorials/waypoint/get-started-docker)|



================================================
FILE: docker/next-js/package.json
================================================
{
  "name": "next-js",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start"
  },
  "dependencies": {
    "next": "9.5.1",
    "react": "16.13.1",
    "react-dom": "16.13.1"
  }
}


================================================
FILE: docker/next-js/pages/_app.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

import '../styles/globals.css'

function MyApp({ Component, pageProps }) {
  return <Component {...pageProps} />
}

export default MyApp


================================================
FILE: docker/next-js/pages/api/hello.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

// Next.js API route support: https://nextjs.org/docs/api-routes/introduction

export default (req, res) => {
  res.statusCode = 200
  res.json({ name: 'John Doe' })
}


================================================
FILE: docker/next-js/pages/index.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

import Head from 'next/head'
import styles from '../styles/Home.module.css'

export default function Home() {
  return (
    <div className={styles.container}>
      <Head>
        <title>Waypoint Next.js Example</title>
        <link rel="icon" href="/favicon.ico" />
      </Head>
      
      <header>
        <a href="https://waypointproject.io" className={styles.logo}>
          <img src="/logo.svg" alt="Logo" />
        </a>
      </header>
      <section className={styles.content}>
        <div className={styles.language}>
          <img src="/language.svg" alt="Next.js Icon" />
        </div>
        <h1>This Next.js app was deployed with Waypoint.</h1>
        <p>
          Try making a change to this text locally and run <code>waypoint up</code> again to see it.
        </p>
        <p>
          Read the <a href="https://waypointproject.io/docs">documentation</a> for more about Waypoint.
        </p>
      </section>
      <footer>
        <a href="https://hashicorp.com" className={styles.hashi}>
          <img src="/hashi.svg" alt="HashiCorp" />
        </a>
      </footer>
    </div>
  )
}


================================================
FILE: docker/next-js/styles/Home.module.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

.content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

.content h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

.content p {
  padding-top: 12px;
}

.content code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .15); 
}

.content a {
  color: rgb(var(--brand));
}

.language {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), .5);
  background: rgba(var(--brand), .15);
}

================================================
FILE: docker/next-js/styles/globals.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #E4E5E7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #FFF;
}

* {
  margin: 0;
  padding: 0;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/pattern-tl.svg), url(/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

================================================
FILE: docker/next-js/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "example-nextjs"

app "example-nextjs" {
  labels = {
    "service" = "example-nextjs",
    "env"     = "dev"
  }

  build {
    use "pack" {}
  }

  deploy {
    use "docker" {}
  }
}


================================================
FILE: docker/nodejs/.gitignore
================================================
# Node build artifacts
node_modules
npm-debug.log

# Local development
*.env
*.dev
.DS_Store

# Docker
Dockerfile
docker-compose.yml


================================================
FILE: docker/nodejs/Procfile
================================================
web: node index.js


================================================
FILE: docker/nodejs/README.md
================================================
# Waypoint NodeJS Example

|Title|Description|
|---|---|
|Pack|Cloud Native Buildpack|
|Cloud|Local|
|Language|JavaScript|
|Docs|[Docker](https://www.waypointproject.io/plugins/docker)|
|Tutorial|[HashiCorp Learn](https://learn.hashicorp.com/tutorials/waypoint/get-started-docker)|



================================================
FILE: docker/nodejs/index.js
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000

express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .listen(PORT, () => console.log(`Listening on ${ PORT }`))


================================================
FILE: docker/nodejs/package.json
================================================
{
  "name": "node-js-getting-started",
  "version": "0.3.0",
  "description": "A sample Node.js app using Express 4",
  "engines": {
    "node": "12.x"
  },
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "node test.js"
  },
  "dependencies": {
    "ejs": "^2.5.6",
    "express": "^4.15.2"
  },
  "devDependencies": {
    "got": "^11.3.0",
    "tape": "^4.7.0"
  },
  "keywords": [
    "node",
    "express"
  ],
  "license": "MIT"
}


================================================
FILE: docker/nodejs/public/stylesheets/main.css
================================================
/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

:root {
  --text: #E4E5E7;
  --background: #000;
  --brand: 4, 198, 194;
  --headline: #FFF;
}

* {
  margin: 0;
  padding: 0;
}

html, body {
  min-height: 100vh;
}

body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-size: 15px;
  line-height: 24px;
  color: var(--text);
  text-align: center;
  background-image: url(/pattern-tl.svg), url(/pattern-br.svg);
  background-position: top left, bottom right;
  background-repeat: no-repeat;
  background-color: var(--background);
}

.container {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 80px - 60px);
  padding: 80px 60px 60px;
}

section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-grow: 1;
  padding: 60px 0;
}

section .language-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 100%;
  border: 1px solid rgba(var(--brand), .5);
  background: rgba(var(--brand), .15);
}

section h1 {
  color: var(--headline);
  font-size: 18px;
  font-weight: 600;
  padding: 40px 0 8px;
}

section p {
  padding-top: 12px;
}

section code {
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  font-size: 14px;
  padding: 4px 6px;
  margin: 0 2px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .15); 
}

section a {
  color: rgb(var(--brand));
}

================================================
FILE: docker/nodejs/views/pages/index.ejs
================================================
<!DOCTYPE html>
<%/*
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: MPL-2.0
*/%>

<html>
  <head>
    <% include ../partials/header.ejs %>
  </head>

  <body>
    <div class="container">
      <header>
        <a href="https://waypointproject.io" class="logo">
          <img src="/logo.svg" alt="Logo" />
        </a>
      </header>
      <section class="content">
        <div class="language-icon">
          <img src="/language.svg" alt="Node.js Icon" />
        </div>
        <h1>This Node.js app was deployed with Waypoint.</h1>
        <p>
          Try making a change to this text locally and run <code>waypoint up</code> again to see it.
        </p>
        <p>
          Read the <a href="https://waypointproject.io/docs">documentation</a> for more about Waypoint.
        </p>
      </section>
      <footer>
        <a href="https://hashicorp.com" class="hashi">
          <img src="/hashi.svg" alt="HashiCorp" />
        </a>
      </footer>
    </div>
  </body>
</html>


================================================
FILE: docker/nodejs/views/partials/header.ejs
================================================
<%/*
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: MPL-2.0
*/%>

<title>Waypoint Node.js Example</title>
<link rel="stylesheet" type="text/css" href="/stylesheets/main.css" />


================================================
FILE: docker/nodejs/waypoint.hcl
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

project = "example-nodejs"

app "example-nodejs" {
  labels = {
    "service" = "example-nodejs",
    "env"     = "dev"
  }

  build {
    use "pack" {}
  }

  deploy {
    use "docker" {}
  }
}


================================================
FILE: docker/php/.editorconfig
================================================
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.{yml,yaml}]
indent_size = 2


================================================
FILE: docker/php/.gitattributes
================================================
* text=auto
*.css linguist-vendored
*.scss linguist-vendored
*.js linguist-vendored
CHANGELOG.md export-ignore


================================================
FILE: docker/php/.gitignore
================================================
/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env.backup
.phpunit.result.cache
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log


================================================
FILE: docker/php/.styleci.yml
================================================
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

php:
  preset: laravel
  disabled:
    - unused_use
  finder:
    not-name:
      - index.php
      - server.php
js:
  finder:
    not-name:
      - webpack.mix.js
css: true


================================================
FILE: docker/php/Procfile
================================================
web: vendor/bin/heroku-php-nginx public/


================================================
FILE: docker/php/README.md
================================================
# Waypoint PHP Example

|Title|Description|
|---|---|
|Pack|Cloud Native Buildpack|
|Cloud|Local|
|Language|PHP|
|Docs|[Docker](https://www.waypointproject.io/plugins/docker)|
|Tutorial|[HashiCorp Learn](https://learn.hashicorp.com/tutorials/waypoint/get-started-docker)|

A barebones Laravel 8 app, which can easily be deployed by Waypoint.

This repository provides an .env file to make it easy to deploy the example,
however these environment variables should be managed using `waypoint config`.

Laravel `TrustProxies` has been set to `*` as an example to allow Laravel to
generate the correct SSL asset URL.


================================================
FILE: docker/php/app/Console/Kernel.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        //
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // $schedule->command('inspire')->hourly();
    }

    /**
     * Register the commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

        require base_path('routes/console.php');
    }
}


================================================
FILE: docker/php/app/Exceptions/Handler.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;

class Handler extends ExceptionHandler
{
    /**
     * A list of the exception types that are not reported.
     *
     * @var array
     */
    protected $dontReport = [
        //
    ];

    /**
     * A list of the inputs that are never flashed for validation exceptions.
     *
     * @var array
     */
    protected $dontFlash = [
        'password',
        'password_confirmation',
    ];

    /**
     * Register the exception handling callbacks for the application.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}


================================================
FILE: docker/php/app/Http/Controllers/Controller.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Http\Controllers;

use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}


================================================
FILE: docker/php/app/Http/Kernel.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        // \App\Http\Middleware\TrustHosts::class,
        \App\Http\Middleware\TrustProxies::class,
        \Fruitcake\Cors\HandleCors::class,
        \App\Http\Middleware\PreventRequestsDuringMaintenance::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    ];

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
            'throttle:api',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
    ];

    /**
     * The application's route middleware.
     *
     * These middleware may be assigned to groups or used individually.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
    ];
}


================================================
FILE: docker/php/app/Http/Middleware/Authenticate.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Http\Middleware;

use Illuminate\Auth\Middleware\Authenticate as Middleware;

class Authenticate extends Middleware
{
    /**
     * Get the path the user should be redirected to when they are not authenticated.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return string|null
     */
    protected function redirectTo($request)
    {
        if (! $request->expectsJson()) {
            return route('login');
        }
    }
}


================================================
FILE: docker/php/app/Http/Middleware/EncryptCookies.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Http\Middleware;

use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;

class EncryptCookies extends Middleware
{
    /**
     * The names of the cookies that should not be encrypted.
     *
     * @var array
     */
    protected $except = [
        //
    ];
}


================================================
FILE: docker/php/app/Http/Middleware/PreventRequestsDuringMaintenance.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;

class PreventRequestsDuringMaintenance extends Middleware
{
    /**
     * The URIs that should be reachable while maintenance mode is enabled.
     *
     * @var array
     */
    protected $except = [
        //
    ];
}


================================================
FILE: docker/php/app/Http/Middleware/RedirectIfAuthenticated.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Http\Middleware;

use App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  ...$guards
     * @return mixed
     */
    public function handle($request, Closure $next, ...$guards)
    {
        $guards = empty($guards) ? [null] : $guards;

        foreach ($guards as $guard) {
            if (Auth::guard($guard)->check()) {
                return redirect(RouteServiceProvider::HOME);
            }
        }

        return $next($request);
    }
}


================================================
FILE: docker/php/app/Http/Middleware/TrimStrings.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;

class TrimStrings extends Middleware
{
    /**
     * The names of the attributes that should not be trimmed.
     *
     * @var array
     */
    protected $except = [
        'password',
        'password_confirmation',
    ];
}


================================================
FILE: docker/php/app/Http/Middleware/TrustHosts.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Http\Middleware;

use Illuminate\Http\Middleware\TrustHosts as Middleware;

class TrustHosts extends Middleware
{
    /**
     * Get the host patterns that should be trusted.
     *
     * @return array
     */
    public function hosts()
    {
        return [
            $this->allSubdomainsOfApplicationUrl(),
        ];
    }
}


================================================
FILE: docker/php/app/Http/Middleware/TrustProxies.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Http\Middleware;

use Fideloper\Proxy\TrustProxies as Middleware;
use Illuminate\Http\Request;

class TrustProxies extends Middleware
{
    /**
     * The trusted proxies for this application.
     *
     * @var array|string|null
     */
    protected $proxies = '*';

    /**
     * The headers that should be used to detect proxies.
     *
     * @var int
     */
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
}


================================================
FILE: docker/php/app/Http/Middleware/VerifyCsrfToken.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        //
    ];
}


================================================
FILE: docker/php/app/Models/User.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class User extends Authenticatable
{
    use HasFactory, Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}


================================================
FILE: docker/php/app/Providers/AppServiceProvider.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }
}


================================================
FILE: docker/php/app/Providers/AuthServiceProvider.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Providers;

use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        // 'App\Model' => 'App\Policies\ModelPolicy',
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        //
    }
}


================================================
FILE: docker/php/app/Providers/BroadcastServiceProvider.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Providers;

use Illuminate\Support\Facades\Broadcast;
use Illuminate\Support\ServiceProvider;

class BroadcastServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Broadcast::routes();

        require base_path('routes/channels.php');
    }
}


================================================
FILE: docker/php/app/Providers/EventServiceProvider.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Providers;

use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Event;

class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
    ];

    /**
     * Register any events for your application.
     *
     * @return void
     */
    public function boot()
    {
        //
    }
}


================================================
FILE: docker/php/app/Providers/RouteServiceProvider.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


namespace App\Providers;

use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\Facades\Route;

class RouteServiceProvider extends ServiceProvider
{
    /**
     * The path to the "home" route for your application.
     *
     * This is used by Laravel authentication to redirect users after login.
     *
     * @var string
     */
    public const HOME = '/home';

    /**
     * If specified, this namespace is automatically applied to your controller routes.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = null;

    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @return void
     */
    public function boot()
    {
        $this->configureRateLimiting();

        $this->routes(function () {
            Route::middleware('web')
                ->group(base_path('routes/web.php'));

            Route::prefix('api')
                ->middleware('api')
                ->group(base_path('routes/api.php'));
        });
    }

    /**
     * Configure the rate limiters for the application.
     *
     * @return void
     */
    protected function configureRateLimiting()
    {
        RateLimiter::for('api', function (Request $request) {
            return Limit::perMinute(60);
        });
    }
}


================================================
FILE: docker/php/artisan
================================================
#!/usr/bin/env php
<?php

define('LARAVEL_START', microtime(true));

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/

require __DIR__.'/vendor/autoload.php';

$app = require_once __DIR__.'/bootstrap/app.php';

/*
|--------------------------------------------------------------------------
| Run The Artisan Application
|--------------------------------------------------------------------------
|
| When we run the console application, the current CLI command will be
| executed in this console and the response sent back to a terminal
| or another output device for the developers. Here goes nothing!
|
*/

$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);

$status = $kernel->handle(
    $input = new Symfony\Component\Console\Input\ArgvInput,
    new Symfony\Component\Console\Output\ConsoleOutput
);

/*
|--------------------------------------------------------------------------
| Shutdown The Application
|--------------------------------------------------------------------------
|
| Once Artisan has finished running, we will fire off the shutdown events
| so that any final work may be done by the application before we shut
| down the process. This is the last thing to happen to the request.
|
*/

$kernel->terminate($input, $status);

exit($status);


================================================
FILE: docker/php/bootstrap/app.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/

$app = new Illuminate\Foundation\Application(
    $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);

/*
|--------------------------------------------------------------------------
| Bind Important Interfaces
|--------------------------------------------------------------------------
|
| Next, we need to bind some important interfaces into the container so
| we will be able to resolve them when needed. The kernels serve the
| incoming requests to this application from both the web and CLI.
|
*/

$app->singleton(
    Illuminate\Contracts\Http\Kernel::class,
    App\Http\Kernel::class
);

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class,
    App\Console\Kernel::class
);

$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class,
    App\Exceptions\Handler::class
);

/*
|--------------------------------------------------------------------------
| Return The Application
|--------------------------------------------------------------------------
|
| This script returns the application instance. The instance is given to
| the calling script so we can separate the building of the instances
| from the actual running of the application and sending responses.
|
*/

return $app;


================================================
FILE: docker/php/bootstrap/cache/.gitignore
================================================
*
!.gitignore


================================================
FILE: docker/php/composer.json
================================================
{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "php": "^7.3",
        "fideloper/proxy": "^4.2",
        "fruitcake/laravel-cors": "^2.0",
        "guzzlehttp/guzzle": "^7.0.1",
        "laravel/framework": "^8.0",
        "laravel/tinker": "^2.0"
    },
    "require-dev": {
        "facade/ignition": "^2.3.6",
        "fzaninotto/faker": "^1.9.1",
        "mockery/mockery": "^1.3.1",
        "nunomaduro/collision": "^5.0",
        "phpunit/phpunit": "^9.3"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    }
}


================================================
FILE: docker/php/config/app.php
================================================
<?php
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0


return [

    /*
    |--------------------------------------------------------------------------
    | Application Name
    |--------------------------------------------------------------------------
    |
    | This value is the name of your application. This value is used when the
    | framework needs to place the application's name in a notification or
    | any other location as required by the application or its packages.
    |
    */

    'name' => env('APP_NAME', 'Laravel'),

    /*
    |--------------------------------------------------------------------------
    | Application Environment
    |--------------------------------------------------------------------------
    |
    | This value determines the "environment" your application is currently
    | running in. This may determine how you prefer to configure various
    | services the application utilizes. Set this in your ".env" file.
    |
    */

    'env' => env('APP_ENV', 'production'),

    /*
    |--------------------------------------------------------------------------
    | Application Debug Mode
    |--------------------------------------------------------------------------
    |
    | When your application is in debug mode, detailed error messages with
    | stack traces will be shown on every error that occurs within your
    | application. If disabled, a simple generic error page is shown.
    |
    */

    'debug' => (bool) env('APP_DEBUG', false),

    /*
    |--------------------------------------------------------------------------
    | Application URL
    |--------------------------------------------------------------------------
    |
    | This URL is used by the console to properly generate URLs when using
    | the Artisan command line tool. You should set this to the root of
    | your application so that it is used when running Artisan tasks.
    |
    */

    'url' => env('APP_URL', 'http://localhost'),

    'asset_url' => env('ASSET_URL', null),

    /*
    |--------------------------------------------------------------------------
    | Application Timezone
    |--------------------------------------------------------------------------
    |
    | Here you may specify the default timezone for your application, which
    | will be used by the PHP date and date-time functions. We have gone
    | ahead and set this to a sensible default for you out of the box.
    |
    */

    'timezone' => 'UTC',

    /*
    |--------------------------------------------------------------------------
    | Application Locale Configuration
    |--------------------------------------------------------------------------
    |
    | The application locale determines the default locale that will be used
    | by the translation service provider. You are free to set this value
    | to any of the locales which will be supported by the application.
    |
    */

    'locale' => 'en',

    /*
    |--------------------------------------------------------------------------
    | Application Fallback Locale
    |--------------------------------------------------------------------------
    |
    | The fallback locale determines the locale to use when the current one
    | is not available. You may change the value to correspond to any of
    | the language folders that are provided through your application.
    |
    */

    'fallback_locale' => 'en',

    /*
    |--------------------------------------------------------------------------
    | Faker Locale
    |--------------------------------------------------------------------------
    |
    | This locale will be used by the Faker PHP library when generating fake
    | data for your database seeds. For example, this will be used to get
    | localized telephone numbers, street address information and more.
    |
    */

    'faker_
Download .txt
gitextract__3jods0z/

├── .github/
│   ├── CODEOWNERS
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   └── ISSUE_TEMPLATE/
│       ├── bug_report.md
│       ├── config.yml
│       └── feature_request.md
├── .gitignore
├── LICENSE
├── README.md
├── aws/
│   ├── aws-ecs/
│   │   ├── nodejs/
│   │   │   ├── .gitignore
│   │   │   ├── Procfile
│   │   │   ├── README.md
│   │   │   ├── index.js
│   │   │   ├── main.tf
│   │   │   ├── package.json
│   │   │   ├── packer.json
│   │   │   ├── public/
│   │   │   │   └── stylesheets/
│   │   │   │       └── main.css
│   │   │   ├── views/
│   │   │   │   ├── pages/
│   │   │   │   │   └── index.ejs
│   │   │   │   └── partials/
│   │   │   │       └── header.ejs
│   │   │   └── waypoint.hcl
│   │   ├── nodejs-terraform/
│   │   │   ├── .gitignore
│   │   │   ├── Procfile
│   │   │   ├── README.md
│   │   │   ├── index.js
│   │   │   ├── package.json
│   │   │   ├── packer.json
│   │   │   ├── public/
│   │   │   │   └── stylesheets/
│   │   │   │       └── main.css
│   │   │   ├── terraform/
│   │   │   │   ├── .terraform.lock.hcl
│   │   │   │   ├── backend.tf
│   │   │   │   ├── ecs.tf
│   │   │   │   ├── main.tf
│   │   │   │   ├── outputs.tf
│   │   │   │   └── variables.tf
│   │   │   ├── views/
│   │   │   │   ├── pages/
│   │   │   │   │   └── index.ejs
│   │   │   │   └── partials/
│   │   │   │       └── header.ejs
│   │   │   └── waypoint.hcl
│   │   └── python/
│   │       ├── Dockerfile
│   │       ├── README.md
│   │       ├── app/
│   │       │   ├── app.py
│   │       │   ├── static/
│   │       │   │   ├── images/
│   │       │   │   │   └── language.svg.old
│   │       │   │   └── stylesheets/
│   │       │   │       └── main.css
│   │       │   ├── templates/
│   │       │   │   └── index.html
│   │       │   └── wsgi.py
│   │       ├── requirements.txt
│   │       └── waypoint.hcl
│   ├── ec2/
│   │   ├── README.md
│   │   └── waypoint.hcl
│   └── lambda/
│       ├── nodejs/
│       │   └── waypoint.hcl
│       ├── nodejs-graphql/
│       │   ├── .gitignore
│       │   ├── Dockerfile
│       │   ├── README.md
│       │   ├── index.js
│       │   ├── package.json
│       │   └── waypoint.hcl
│       └── ruby/
│           ├── Dockerfile
│           ├── README.md
│           ├── handler.rb
│           └── waypoint.hcl
├── azure/
│   └── azure-container-instance/
│       └── nodejs/
│           ├── .gitignore
│           ├── Procfile
│           ├── README.md
│           ├── index.js
│           ├── package.json
│           ├── public/
│           │   └── stylesheets/
│           │       └── main.css
│           ├── views/
│           │   ├── pages/
│           │   │   └── index.ejs
│           │   └── partials/
│           │       └── header.ejs
│           └── waypoint.hcl
├── docker/
│   ├── angular/
│   │   ├── Procfile
│   │   ├── README.md
│   │   ├── angular.json
│   │   ├── browserslist
│   │   ├── e2e/
│   │   │   ├── protractor.conf.js
│   │   │   ├── src/
│   │   │   │   ├── app.e2e-spec.ts
│   │   │   │   └── app.po.ts
│   │   │   └── tsconfig.json
│   │   ├── karma.conf.js
│   │   ├── package.json
│   │   ├── server.js
│   │   ├── src/
│   │   │   ├── app/
│   │   │   │   ├── app.component.html
│   │   │   │   ├── app.component.scss
│   │   │   │   ├── app.component.spec.ts
│   │   │   │   ├── app.component.ts
│   │   │   │   └── app.module.ts
│   │   │   ├── assets/
│   │   │   │   └── .gitkeep
│   │   │   ├── environments/
│   │   │   │   ├── environment.prod.ts
│   │   │   │   └── environment.ts
│   │   │   ├── index.html
│   │   │   ├── main.ts
│   │   │   ├── polyfills.ts
│   │   │   ├── styles.scss
│   │   │   └── test.ts
│   │   ├── tsconfig.app.json
│   │   ├── tsconfig.json
│   │   ├── tsconfig.spec.json
│   │   ├── tslint.json
│   │   └── waypoint.hcl
│   ├── aspnetapp/
│   │   ├── .dockerignore
│   │   ├── .gitignore
│   │   ├── Pages/
│   │   │   ├── Error.cshtml
│   │   │   ├── Error.cshtml.cs
│   │   │   ├── Index.cshtml
│   │   │   ├── Index.cshtml.cs
│   │   │   ├── Privacy.cshtml
│   │   │   ├── Privacy.cshtml.cs
│   │   │   ├── Shared/
│   │   │   │   ├── _Layout.cshtml
│   │   │   │   └── _ValidationScriptsPartial.cshtml
│   │   │   ├── _ViewImports.cshtml
│   │   │   └── _ViewStart.cshtml
│   │   ├── Program.cs
│   │   ├── Properties/
│   │   │   └── launchSettings.json
│   │   ├── README.md
│   │   ├── Startup.cs
│   │   ├── appsettings.Development.json
│   │   ├── appsettings.json
│   │   ├── aspnetapp.csproj
│   │   ├── waypoint.hcl
│   │   └── wwwroot/
│   │       └── static/
│   │           └── stylesheets/
│   │               └── main.css
│   ├── go/
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── go-multiapp/
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── java/
│   │   ├── .gitignore
│   │   ├── .mvn/
│   │   │   └── wrapper/
│   │   │       ├── maven-wrapper.jar
│   │   │       └── maven-wrapper.properties
│   │   ├── README.md
│   │   ├── mvnw
│   │   ├── mvnw.cmd
│   │   ├── pom.xml
│   │   ├── src/
│   │   │   ├── main/
│   │   │   │   ├── java/
│   │   │   │   │   └── com/
│   │   │   │   │       └── example/
│   │   │   │   │           └── waypoint/
│   │   │   │   │               └── WaypointApplication.java
│   │   │   │   └── resources/
│   │   │   │       ├── application.properties
│   │   │   │       ├── public/
│   │   │   │       │   └── stylesheets/
│   │   │   │       │       └── main.css
│   │   │   │       └── templates/
│   │   │   │           ├── fragments/
│   │   │   │           │   └── layout.html
│   │   │   │           └── index.html
│   │   │   └── test/
│   │   │       └── java/
│   │   │           └── com/
│   │   │               └── example/
│   │   │                   └── waypoint/
│   │   │                       └── WaypointApplicationTests.java
│   │   ├── system.properties
│   │   ├── waypoint.hcl
│   │   ├── waypoint.hcl.gcp
│   │   ├── waypoint.hcl.heroku
│   │   └── waypoint.hcl.paketo
│   ├── next-js/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── pages/
│   │   │   ├── _app.js
│   │   │   ├── api/
│   │   │   │   └── hello.js
│   │   │   └── index.js
│   │   ├── styles/
│   │   │   ├── Home.module.css
│   │   │   └── globals.css
│   │   └── waypoint.hcl
│   ├── nodejs/
│   │   ├── .gitignore
│   │   ├── Procfile
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── php/
│   │   ├── .editorconfig
│   │   ├── .gitattributes
│   │   ├── .gitignore
│   │   ├── .styleci.yml
│   │   ├── Procfile
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── Console/
│   │   │   │   └── Kernel.php
│   │   │   ├── Exceptions/
│   │   │   │   └── Handler.php
│   │   │   ├── Http/
│   │   │   │   ├── Controllers/
│   │   │   │   │   └── Controller.php
│   │   │   │   ├── Kernel.php
│   │   │   │   └── Middleware/
│   │   │   │       ├── Authenticate.php
│   │   │   │       ├── EncryptCookies.php
│   │   │   │       ├── PreventRequestsDuringMaintenance.php
│   │   │   │       ├── RedirectIfAuthenticated.php
│   │   │   │       ├── TrimStrings.php
│   │   │   │       ├── TrustHosts.php
│   │   │   │       ├── TrustProxies.php
│   │   │   │       └── VerifyCsrfToken.php
│   │   │   ├── Models/
│   │   │   │   └── User.php
│   │   │   └── Providers/
│   │   │       ├── AppServiceProvider.php
│   │   │       ├── AuthServiceProvider.php
│   │   │       ├── BroadcastServiceProvider.php
│   │   │       ├── EventServiceProvider.php
│   │   │       └── RouteServiceProvider.php
│   │   ├── artisan
│   │   ├── bootstrap/
│   │   │   ├── app.php
│   │   │   └── cache/
│   │   │       └── .gitignore
│   │   ├── composer.json
│   │   ├── config/
│   │   │   ├── app.php
│   │   │   ├── auth.php
│   │   │   ├── broadcasting.php
│   │   │   ├── cache.php
│   │   │   ├── cors.php
│   │   │   ├── database.php
│   │   │   ├── filesystems.php
│   │   │   ├── hashing.php
│   │   │   ├── logging.php
│   │   │   ├── mail.php
│   │   │   ├── queue.php
│   │   │   ├── services.php
│   │   │   ├── session.php
│   │   │   └── view.php
│   │   ├── database/
│   │   │   ├── .gitignore
│   │   │   ├── factories/
│   │   │   │   └── UserFactory.php
│   │   │   ├── migrations/
│   │   │   │   ├── 2014_10_12_000000_create_users_table.php
│   │   │   │   ├── 2014_10_12_100000_create_password_resets_table.php
│   │   │   │   └── 2019_08_19_000000_create_failed_jobs_table.php
│   │   │   └── seeders/
│   │   │       └── DatabaseSeeder.php
│   │   ├── package.json
│   │   ├── phpunit.xml
│   │   ├── public/
│   │   │   ├── .htaccess
│   │   │   ├── css/
│   │   │   │   └── main.css
│   │   │   ├── index.php
│   │   │   ├── robots.txt
│   │   │   └── web.config
│   │   ├── resources/
│   │   │   ├── css/
│   │   │   │   └── app.css
│   │   │   ├── js/
│   │   │   │   ├── app.js
│   │   │   │   └── bootstrap.js
│   │   │   ├── lang/
│   │   │   │   └── en/
│   │   │   │       ├── auth.php
│   │   │   │       ├── pagination.php
│   │   │   │       ├── passwords.php
│   │   │   │       └── validation.php
│   │   │   └── views/
│   │   │       └── welcome.blade.php
│   │   ├── routes/
│   │   │   ├── api.php
│   │   │   ├── channels.php
│   │   │   ├── console.php
│   │   │   └── web.php
│   │   ├── server.php
│   │   ├── storage/
│   │   │   ├── app/
│   │   │   │   └── .gitignore
│   │   │   ├── framework/
│   │   │   │   ├── .gitignore
│   │   │   │   ├── cache/
│   │   │   │   │   └── .gitignore
│   │   │   │   ├── sessions/
│   │   │   │   │   └── .gitignore
│   │   │   │   ├── testing/
│   │   │   │   │   └── .gitignore
│   │   │   │   └── views/
│   │   │   │       └── .gitignore
│   │   │   └── logs/
│   │   │       └── .gitignore
│   │   ├── tests/
│   │   │   ├── CreatesApplication.php
│   │   │   ├── Feature/
│   │   │   │   └── ExampleTest.php
│   │   │   ├── TestCase.php
│   │   │   └── Unit/
│   │   │       └── ExampleTest.php
│   │   ├── waypoint.hcl
│   │   └── webpack.mix.js
│   ├── python/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── app/
│   │   │   ├── app.py
│   │   │   ├── static/
│   │   │   │   └── stylesheets/
│   │   │   │       └── main.css
│   │   │   ├── templates/
│   │   │   │   └── index.html
│   │   │   └── wsgi.py
│   │   ├── requirements.txt
│   │   └── waypoint.hcl
│   ├── reactjs/
│   │   ├── .gitignore
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── nginx/
│   │   │   └── default.conf
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   ├── manifest.json
│   │   │   └── robots.txt
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.js
│   │   │   ├── App.test.js
│   │   │   ├── index.js
│   │   │   ├── serviceWorker.js
│   │   │   └── setupTests.js
│   │   └── waypoint.hcl
│   ├── reactjs-packer/
│   │   ├── .gitignore
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── nginx/
│   │   │   └── default.conf
│   │   ├── nginx.pkr.hcl
│   │   ├── package.json
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   ├── manifest.json
│   │   │   └── robots.txt
│   │   ├── src/
│   │   │   ├── App.css
│   │   │   ├── App.js
│   │   │   ├── App.test.js
│   │   │   ├── index.js
│   │   │   ├── serviceWorker.js
│   │   │   └── setupTests.js
│   │   └── waypoint.hcl
│   ├── ruby/
│   │   ├── .gitignore
│   │   ├── Gemfile
│   │   ├── Procfile
│   │   ├── README.md
│   │   ├── Rakefile
│   │   ├── app/
│   │   │   ├── assets/
│   │   │   │   ├── images/
│   │   │   │   │   └── .keep
│   │   │   │   ├── javascripts/
│   │   │   │   │   ├── application.js
│   │   │   │   │   ├── welcome.js.coffee
│   │   │   │   │   └── widgets.js.coffee
│   │   │   │   └── stylesheets/
│   │   │   │       ├── application.css
│   │   │   │       ├── main.css.scss
│   │   │   │       ├── scaffolds.css.scss
│   │   │   │       ├── theme.css.scss
│   │   │   │       ├── welcome.css.scss
│   │   │   │       └── widgets.css.scss
│   │   │   ├── controllers/
│   │   │   │   ├── application_controller.rb
│   │   │   │   ├── concerns/
│   │   │   │   │   └── .keep
│   │   │   │   ├── welcome_controller.rb
│   │   │   │   └── widgets_controller.rb
│   │   │   ├── helpers/
│   │   │   │   ├── application_helper.rb
│   │   │   │   ├── welcome_helper.rb
│   │   │   │   └── widgets_helper.rb
│   │   │   ├── mailers/
│   │   │   │   └── .keep
│   │   │   ├── models/
│   │   │   │   ├── .keep
│   │   │   │   ├── concerns/
│   │   │   │   │   └── .keep
│   │   │   │   └── widget.rb
│   │   │   └── views/
│   │   │       ├── layouts/
│   │   │       │   └── application.html.erb
│   │   │       ├── welcome/
│   │   │       │   └── index.erb
│   │   │       └── widgets/
│   │   │           ├── _form.html.erb
│   │   │           ├── edit.html.erb
│   │   │           ├── index.html.erb
│   │   │           ├── index.json.jbuilder
│   │   │           ├── new.html.erb
│   │   │           ├── show.html.erb
│   │   │           └── show.json.jbuilder
│   │   ├── bin/
│   │   │   ├── bundle
│   │   │   ├── rails
│   │   │   ├── rake
│   │   │   ├── setup
│   │   │   ├── spring
│   │   │   ├── update
│   │   │   └── yarn
│   │   ├── config/
│   │   │   ├── application.rb
│   │   │   ├── boot.rb
│   │   │   ├── cable.yml
│   │   │   ├── database.yml
│   │   │   ├── environment.rb
│   │   │   ├── environments/
│   │   │   │   ├── development.rb
│   │   │   │   ├── production.rb
│   │   │   │   └── test.rb
│   │   │   ├── initializers/
│   │   │   │   ├── application_controller_renderer.rb
│   │   │   │   ├── assets.rb
│   │   │   │   ├── backtrace_silencers.rb
│   │   │   │   ├── content_security_policy.rb
│   │   │   │   ├── cookies_serializer.rb
│   │   │   │   ├── filter_parameter_logging.rb
│   │   │   │   ├── inflections.rb
│   │   │   │   ├── mime_types.rb
│   │   │   │   ├── new_framework_defaults_5_2.rb
│   │   │   │   ├── session_store.rb
│   │   │   │   └── wrap_parameters.rb
│   │   │   ├── locales/
│   │   │   │   └── en.yml
│   │   │   ├── puma.rb
│   │   │   ├── routes.rb
│   │   │   ├── secrets.yml
│   │   │   ├── spring.rb
│   │   │   └── storage.yml
│   │   ├── config.ru
│   │   ├── db/
│   │   │   ├── migrate/
│   │   │   │   └── 20140707111715_create_widgets.rb
│   │   │   ├── schema.rb
│   │   │   └── seeds.rb
│   │   ├── lib/
│   │   │   ├── assets/
│   │   │   │   └── .keep
│   │   │   └── tasks/
│   │   │       └── .keep
│   │   ├── log/
│   │   │   └── .keep
│   │   ├── public/
│   │   │   ├── 404.html
│   │   │   ├── 422.html
│   │   │   ├── 500.html
│   │   │   └── robots.txt
│   │   ├── test/
│   │   │   ├── controllers/
│   │   │   │   ├── .keep
│   │   │   │   ├── welcome_controller_test.rb
│   │   │   │   └── widgets_controller_test.rb
│   │   │   ├── fixtures/
│   │   │   │   ├── .keep
│   │   │   │   └── widgets.yml
│   │   │   ├── helpers/
│   │   │   │   ├── .keep
│   │   │   │   ├── welcome_helper_test.rb
│   │   │   │   └── widgets_helper_test.rb
│   │   │   ├── integration/
│   │   │   │   └── .keep
│   │   │   ├── mailers/
│   │   │   │   └── .keep
│   │   │   ├── models/
│   │   │   │   ├── .keep
│   │   │   │   └── widget_test.rb
│   │   │   └── test_helper.rb
│   │   ├── vendor/
│   │   │   └── assets/
│   │   │       ├── javascripts/
│   │   │       │   └── .keep
│   │   │       └── stylesheets/
│   │   │           └── .keep
│   │   └── waypoint.hcl
│   ├── static/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── nginx.conf
│   │   ├── public/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   └── svelte/
│       ├── .gitignore
│       ├── Dockerfile
│       ├── README.md
│       ├── package.json
│       ├── public/
│       │   ├── index.html
│       │   └── main.css
│       ├── rollup.config.js
│       ├── src/
│       │   ├── App.svelte
│       │   ├── main.js
│       │   └── views/
│       │       └── Index.svelte
│       └── waypoint.hcl
├── gcp/
│   └── google-cloud-run/
│       └── nodejs/
│           ├── .gitignore
│           ├── Procfile
│           ├── README.md
│           ├── index.js
│           ├── package.json
│           ├── public/
│           │   └── stylesheets/
│           │       └── main.css
│           ├── views/
│           │   ├── pages/
│           │   │   └── index.ejs
│           │   └── partials/
│           │       └── header.ejs
│           └── waypoint.hcl
├── kubernetes/
│   ├── aws-eks/
│   │   └── nodejs/
│   │       ├── .gitignore
│   │       ├── Procfile
│   │       ├── README.md
│   │       ├── index.js
│   │       ├── package.json
│   │       ├── public/
│   │       │   └── stylesheets/
│   │       │       └── main.css
│   │       ├── views/
│   │       │   ├── pages/
│   │       │   │   └── index.ejs
│   │       │   └── partials/
│   │       │       └── header.ejs
│   │       └── waypoint.hcl
│   ├── exec-kubectl-apply/
│   │   ├── README.md
│   │   ├── example-nodejs-exec.yml
│   │   ├── index.js
│   │   ├── output.txt
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── go/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── go-gitops/
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── go-multiapp-ingress/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── app-one/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   ├── app-two/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── go-multiworkspace/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── config.yml
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── main.go
│   │   └── waypoint.hcl
│   ├── go-workspace-pull/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   ├── java/
│   │   ├── .gitignore
│   │   ├── .mvn/
│   │   │   └── wrapper/
│   │   │       ├── maven-wrapper.jar
│   │   │       └── maven-wrapper.properties
│   │   ├── README.md
│   │   ├── mvnw
│   │   ├── mvnw.cmd
│   │   ├── pom.xml
│   │   ├── src/
│   │   │   ├── main/
│   │   │   │   ├── java/
│   │   │   │   │   └── com/
│   │   │   │   │       └── example/
│   │   │   │   │           └── waypoint/
│   │   │   │   │               └── WaypointApplication.java
│   │   │   │   └── resources/
│   │   │   │       ├── application.properties
│   │   │   │       ├── public/
│   │   │   │       │   └── stylesheets/
│   │   │   │       │       └── main.css
│   │   │   │       └── templates/
│   │   │   │           ├── fragments/
│   │   │   │           │   └── layout.html
│   │   │   │           └── index.html
│   │   │   └── test/
│   │   │       └── java/
│   │   │           └── com/
│   │   │               └── example/
│   │   │                   └── waypoint/
│   │   │                       └── WaypointApplicationTests.java
│   │   ├── system.properties
│   │   └── waypoint.hcl
│   ├── nodejs/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── nodejs-apply/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── k8s/
│   │   │   └── deployment.yaml
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── nodejs-helm/
│   │   ├── README.md
│   │   ├── helm/
│   │   │   ├── .helmignore
│   │   │   ├── Chart.yaml
│   │   │   ├── templates/
│   │   │   │   ├── NOTES.txt
│   │   │   │   ├── _helpers.tpl
│   │   │   │   ├── deployment.yaml
│   │   │   │   └── service.yaml
│   │   │   └── values.yaml
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── values.yaml.tpl
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── nodejs-ingress/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── nodejs-ingress-sidecar/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── nginx.conf
│   │   ├── package.json
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   ├── nodejs-local-registry/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   └── nodejs-metrics-sidecar/
│       ├── README.md
│       ├── index.js
│       ├── package.json
│       ├── public/
│       │   └── stylesheets/
│       │       └── main.css
│       ├── telegraf.conf
│       ├── views/
│       │   ├── pages/
│       │   │   └── index.ejs
│       │   └── partials/
│       │       └── header.ejs
│       └── waypoint.hcl
├── learn/
│   ├── dynamic-application-configuration/
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── main.go
│   │   ├── postgres.nomad.hcl
│   │   ├── readonly.sql
│   │   ├── waypoint-policy.hcl
│   │   └── waypoint.hcl
│   ├── input-variables/
│   │   ├── README.md
│   │   ├── go.mod
│   │   ├── go.sum
│   │   ├── main.go
│   │   ├── static/
│   │   │   ├── index.html
│   │   │   └── static/
│   │   │       └── stylesheets/
│   │   │           └── main.css
│   │   └── waypoint.hcl
│   └── static-application-configuration/
│       ├── README.md
│       ├── go.mod
│       ├── main.go
│       └── waypoint.hcl
├── nomad/
│   ├── nodejs/
│   │   ├── README.md
│   │   ├── index.js
│   │   ├── package.json
│   │   ├── public/
│   │   │   └── stylesheets/
│   │   │       └── main.css
│   │   ├── views/
│   │   │   ├── pages/
│   │   │   │   └── index.ejs
│   │   │   └── partials/
│   │   │       └── header.ejs
│   │   └── waypoint.hcl
│   └── nodejs-jobspec/
│       ├── README.md
│       ├── app.nomad.tpl
│       ├── index.js
│       ├── package.json
│       ├── public/
│       │   └── stylesheets/
│       │       └── main.css
│       ├── views/
│       │   ├── pages/
│       │   │   └── index.ejs
│       │   └── partials/
│       │       └── header.ejs
│       └── waypoint.hcl
└── terraform/
    └── variables/
        ├── .gitignore
        ├── Dockerfile
        ├── README.md
        ├── terraform/
        │   ├── main/
        │   │   ├── main.tf
        │   │   └── outputs.tf
        │   └── tfc/
        │       ├── .terraform.lock.hcl
        │       ├── main.tf
        │       └── variables.tf
        └── waypoint.hcl
Download .txt
SYMBOL INDEX (156 symbols across 90 files)

FILE: aws/aws-ecs/nodejs-terraform/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: aws/aws-ecs/nodejs/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: aws/aws-ecs/python/app/app.py
  function index (line 8) | def index():

FILE: aws/lambda/ruby/handler.rb
  function handler (line 6) | def handler(event:, context:)

FILE: azure/azure-container-instance/nodejs/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: docker/angular/e2e/protractor.conf.js
  method onPrepare (line 31) | onPrepare() {

FILE: docker/angular/e2e/src/app.po.ts
  class AppPage (line 8) | class AppPage {
    method navigateTo (line 9) | navigateTo() {
    method getTitleText (line 13) | getTitleText() {

FILE: docker/angular/server.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: docker/angular/src/app/app.component.ts
  class AppComponent (line 13) | class AppComponent {

FILE: docker/angular/src/app/app.module.ts
  class AppModule (line 21) | class AppModule { }

FILE: docker/aspnetapp/Pages/Error.cshtml.cs
  class ErrorModel (line 15) | [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoSt...
    method ErrorModel (line 24) | public ErrorModel(ILogger<ErrorModel> logger)
    method OnGet (line 29) | public void OnGet()

FILE: docker/aspnetapp/Pages/Index.cshtml.cs
  class IndexModel (line 14) | public class IndexModel : PageModel
    method IndexModel (line 18) | public IndexModel(ILogger<IndexModel> logger)
    method OnGet (line 23) | public void OnGet()

FILE: docker/aspnetapp/Pages/Privacy.cshtml.cs
  class PrivacyModel (line 14) | public class PrivacyModel : PageModel
    method PrivacyModel (line 18) | public PrivacyModel(ILogger<PrivacyModel> logger)
    method OnGet (line 23) | public void OnGet()

FILE: docker/aspnetapp/Program.cs
  class Program (line 15) | public class Program
    method Main (line 17) | public static void Main(string[] args)
    method CreateHostBuilder (line 22) | public static IHostBuilder CreateHostBuilder(string[] args) =>

FILE: docker/aspnetapp/Startup.cs
  class Startup (line 16) | public class Startup
    method Startup (line 18) | public Startup(IConfiguration configuration)
    method ConfigureServices (line 26) | public void ConfigureServices(IServiceCollection services)
    method Configure (line 32) | public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

FILE: docker/go-multiapp/main.go
  function main (line 12) | func main() {

FILE: docker/go/main.go
  function main (line 12) | func main() {

FILE: docker/java/src/main/java/com/example/waypoint/WaypointApplication.java
  class WaypointApplication (line 13) | @Controller
    method main (line 17) | public static void main(String[] args) {
    method index (line 21) | @RequestMapping("/")

FILE: docker/java/src/test/java/com/example/waypoint/WaypointApplicationTests.java
  class WaypointApplicationTests (line 11) | @SpringBootTest
    method contextLoads (line 14) | @Test

FILE: docker/next-js/pages/_app.js
  function MyApp (line 8) | function MyApp({ Component, pageProps }) {

FILE: docker/next-js/pages/index.js
  function Home (line 9) | function Home() {

FILE: docker/nodejs/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: docker/php/app/Console/Kernel.php
  class Kernel (line 11) | class Kernel extends ConsoleKernel
    method schedule (line 28) | protected function schedule(Schedule $schedule)
    method commands (line 38) | protected function commands()

FILE: docker/php/app/Exceptions/Handler.php
  class Handler (line 10) | class Handler extends ExceptionHandler
    method register (line 36) | public function register()

FILE: docker/php/app/Http/Controllers/Controller.php
  class Controller (line 13) | class Controller extends BaseController

FILE: docker/php/app/Http/Kernel.php
  class Kernel (line 10) | class Kernel extends HttpKernel

FILE: docker/php/app/Http/Middleware/Authenticate.php
  class Authenticate (line 10) | class Authenticate extends Middleware
    method redirectTo (line 18) | protected function redirectTo($request)

FILE: docker/php/app/Http/Middleware/EncryptCookies.php
  class EncryptCookies (line 10) | class EncryptCookies extends Middleware

FILE: docker/php/app/Http/Middleware/PreventRequestsDuringMaintenance.php
  class PreventRequestsDuringMaintenance (line 10) | class PreventRequestsDuringMaintenance extends Middleware

FILE: docker/php/app/Http/Middleware/RedirectIfAuthenticated.php
  class RedirectIfAuthenticated (line 12) | class RedirectIfAuthenticated
    method handle (line 22) | public function handle($request, Closure $next, ...$guards)

FILE: docker/php/app/Http/Middleware/TrimStrings.php
  class TrimStrings (line 10) | class TrimStrings extends Middleware

FILE: docker/php/app/Http/Middleware/TrustHosts.php
  class TrustHosts (line 10) | class TrustHosts extends Middleware
    method hosts (line 17) | public function hosts()

FILE: docker/php/app/Http/Middleware/TrustProxies.php
  class TrustProxies (line 11) | class TrustProxies extends Middleware

FILE: docker/php/app/Http/Middleware/VerifyCsrfToken.php
  class VerifyCsrfToken (line 10) | class VerifyCsrfToken extends Middleware

FILE: docker/php/app/Models/User.php
  class User (line 13) | class User extends Authenticatable

FILE: docker/php/app/Providers/AppServiceProvider.php
  class AppServiceProvider (line 10) | class AppServiceProvider extends ServiceProvider
    method register (line 17) | public function register()
    method boot (line 27) | public function boot()

FILE: docker/php/app/Providers/AuthServiceProvider.php
  class AuthServiceProvider (line 11) | class AuthServiceProvider extends ServiceProvider
    method boot (line 27) | public function boot()

FILE: docker/php/app/Providers/BroadcastServiceProvider.php
  class BroadcastServiceProvider (line 11) | class BroadcastServiceProvider extends ServiceProvider
    method boot (line 18) | public function boot()

FILE: docker/php/app/Providers/EventServiceProvider.php
  class EventServiceProvider (line 13) | class EventServiceProvider extends ServiceProvider
    method boot (line 31) | public function boot()

FILE: docker/php/app/Providers/RouteServiceProvider.php
  class RouteServiceProvider (line 14) | class RouteServiceProvider extends ServiceProvider
    method boot (line 39) | public function boot()
    method configureRateLimiting (line 58) | protected function configureRateLimiting()

FILE: docker/php/database/factories/UserFactory.php
  class UserFactory (line 12) | class UserFactory extends Factory
    method definition (line 26) | public function definition()

FILE: docker/php/database/migrations/2014_10_12_000000_create_users_table.php
  class CreateUsersTable (line 10) | class CreateUsersTable extends Migration
    method up (line 17) | public function up()
    method down (line 35) | public function down()

FILE: docker/php/database/migrations/2014_10_12_100000_create_password_resets_table.php
  class CreatePasswordResetsTable (line 10) | class CreatePasswordResetsTable extends Migration
    method up (line 17) | public function up()
    method down (line 31) | public function down()

FILE: docker/php/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
  class CreateFailedJobsTable (line 10) | class CreateFailedJobsTable extends Migration
    method up (line 17) | public function up()
    method down (line 35) | public function down()

FILE: docker/php/database/seeders/DatabaseSeeder.php
  class DatabaseSeeder (line 10) | class DatabaseSeeder extends Seeder
    method run (line 17) | public function run()

FILE: docker/php/tests/CreatesApplication.php
  type CreatesApplication (line 10) | trait CreatesApplication
    method createApplication (line 17) | public function createApplication()

FILE: docker/php/tests/Feature/ExampleTest.php
  class ExampleTest (line 11) | class ExampleTest extends TestCase
    method testBasicTest (line 18) | public function testBasicTest()

FILE: docker/php/tests/TestCase.php
  class TestCase (line 10) | abstract class TestCase extends BaseTestCase

FILE: docker/php/tests/Unit/ExampleTest.php
  class ExampleTest (line 10) | class ExampleTest extends TestCase
    method testBasicTest (line 17) | public function testBasicTest()

FILE: docker/python/app/app.py
  function index (line 8) | def index():

FILE: docker/reactjs-packer/src/serviceWorker.js
  function register (line 28) | function register(config) {
  function registerValidSW (line 62) | function registerValidSW(swUrl, config) {
  function checkValidServiceWorker (line 106) | function checkValidServiceWorker(swUrl, config) {
  function unregister (line 136) | function unregister() {

FILE: docker/reactjs/src/serviceWorker.js
  function register (line 28) | function register(config) {
  function registerValidSW (line 62) | function registerValidSW(swUrl, config) {
  function checkValidServiceWorker (line 106) | function checkValidServiceWorker(swUrl, config) {
  function unregister (line 136) | function unregister() {

FILE: docker/ruby/app/controllers/application_controller.rb
  class ApplicationController (line 4) | class ApplicationController < ActionController::Base

FILE: docker/ruby/app/controllers/welcome_controller.rb
  class WelcomeController (line 4) | class WelcomeController < ApplicationController
    method index (line 7) | def index

FILE: docker/ruby/app/controllers/widgets_controller.rb
  class WidgetsController (line 4) | class WidgetsController < ApplicationController
    method index (line 9) | def index
    method show (line 15) | def show
    method new (line 19) | def new
    method edit (line 24) | def edit
    method create (line 29) | def create
    method update (line 45) | def update
    method destroy (line 59) | def destroy
    method set_widget (line 69) | def set_widget
    method widget_params (line 74) | def widget_params

FILE: docker/ruby/app/helpers/application_helper.rb
  type ApplicationHelper (line 4) | module ApplicationHelper

FILE: docker/ruby/app/helpers/welcome_helper.rb
  type WelcomeHelper (line 4) | module WelcomeHelper

FILE: docker/ruby/app/helpers/widgets_helper.rb
  type WidgetsHelper (line 4) | module WidgetsHelper

FILE: docker/ruby/app/models/widget.rb
  class Widget (line 4) | class Widget < ActiveRecord::Base

FILE: docker/ruby/config/application.rb
  type RubyGettingStarted (line 12) | module RubyGettingStarted
    class Application (line 13) | class Application < Rails::Application

FILE: docker/ruby/db/migrate/20140707111715_create_widgets.rb
  class CreateWidgets (line 4) | class CreateWidgets < ActiveRecord::Migration[5.1]
    method change (line 5) | def change

FILE: docker/ruby/test/controllers/welcome_controller_test.rb
  class WelcomeControllerTest (line 6) | class WelcomeControllerTest < ActionController::TestCase

FILE: docker/ruby/test/controllers/widgets_controller_test.rb
  class WidgetsControllerTest (line 6) | class WidgetsControllerTest < ActionController::TestCase

FILE: docker/ruby/test/helpers/welcome_helper_test.rb
  class WelcomeHelperTest (line 6) | class WelcomeHelperTest < ActionView::TestCase

FILE: docker/ruby/test/helpers/widgets_helper_test.rb
  class WidgetsHelperTest (line 6) | class WidgetsHelperTest < ActionView::TestCase

FILE: docker/ruby/test/models/widget_test.rb
  class WidgetTest (line 6) | class WidgetTest < ActiveSupport::TestCase

FILE: docker/ruby/test/test_helper.rb
  class ActiveSupport::TestCase (line 8) | class ActiveSupport::TestCase

FILE: docker/svelte/rollup.config.js
  function serve (line 14) | function serve() {

FILE: gcp/google-cloud-run/nodejs/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: kubernetes/aws-eks/nodejs/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: kubernetes/exec-kubectl-apply/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: kubernetes/go-gitops/main.go
  function main (line 12) | func main() {

FILE: kubernetes/go-multiapp-ingress/main.go
  function main (line 12) | func main() {

FILE: kubernetes/go-multiworkspace/main.go
  constant CONFIG_PATH_KEY (line 15) | CONFIG_PATH_KEY = "CONFIG_PATH"
  type config (line 18) | type config struct
  function loadConfig (line 23) | func loadConfig() (*config, error) {
  function main (line 42) | func main() {

FILE: kubernetes/go-workspace-pull/main.go
  function main (line 12) | func main() {

FILE: kubernetes/go/main.go
  function main (line 12) | func main() {

FILE: kubernetes/java/src/main/java/com/example/waypoint/WaypointApplication.java
  class WaypointApplication (line 13) | @Controller
    method main (line 17) | public static void main(String[] args) {
    method index (line 21) | @RequestMapping("/")

FILE: kubernetes/java/src/test/java/com/example/waypoint/WaypointApplicationTests.java
  class WaypointApplicationTests (line 11) | @SpringBootTest
    method contextLoads (line 14) | @Test

FILE: kubernetes/nodejs-apply/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: kubernetes/nodejs-helm/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: kubernetes/nodejs-ingress-sidecar/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: kubernetes/nodejs-ingress/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: kubernetes/nodejs-local-registry/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: kubernetes/nodejs-metrics-sidecar/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: kubernetes/nodejs/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: learn/dynamic-application-configuration/main.go
  function main (line 17) | func main() {
  function connect (line 25) | func connect(w http.ResponseWriter, r *http.Request) {

FILE: learn/input-variables/main.go
  function main (line 12) | func main() {

FILE: learn/static-application-configuration/main.go
  function main (line 13) | func main() {
  function saleViewHandler (line 22) | func saleViewHandler(w http.ResponseWriter, r *http.Request) {

FILE: nomad/nodejs-jobspec/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000

FILE: nomad/nodejs/index.js
  constant PORT (line 8) | const PORT = process.env.PORT || 5000
Condensed preview — 578 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (591K chars).
[
  {
    "path": ".github/CODEOWNERS",
    "chars": 22,
    "preview": "* @hashicorp/waypoint\n"
  },
  {
    "path": ".github/CODE_OF_CONDUCT.md",
    "chars": 214,
    "preview": "# Code of Conduct\n\nHashiCorp Community Guidelines apply to you when interacting with the community here on GitHub and co"
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 3040,
    "preview": "# Contributing to Waypoint Examples\n\n>**Note:** We take Waypoint's security and our users' trust very seriously.\n>If you"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 1086,
    "preview": "---\nname: Bug report\nabout: Let us know about a bug!\ntitle: ''\nlabels: new\nassignees: ''\n\n---\n\n<!-- Please reserve GitHu"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 242,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\ncontact_links:\n  - name: Ask a question\n    url: htt"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 1020,
    "preview": "---\nname: Feature request\nabout: Suggest something!\ntitle: ''\nlabels: new\nassignees: ''\n\n---\n\n**Is your feature request "
  },
  {
    "path": ".gitignore",
    "chars": 790,
    "preview": ".DS_Store\ndata.db\n\n# Local .waypoint directories\n**/.waypoint/*\n\n# Local .terraform directories\n**/.terraform/*\n\n# .tfst"
  },
  {
    "path": "LICENSE",
    "chars": 16761,
    "preview": "Copyright (c) 2020 HashiCorp, Inc.\n\nMozilla Public License Version 2.0\n==================================\n\n1. Definition"
  },
  {
    "path": "README.md",
    "chars": 1404,
    "preview": "# waypoint-examples\n\n----------------------------------------\n\nHashiCorp Waypoint Community Edition is no longer activel"
  },
  {
    "path": "aws/aws-ecs/nodejs/.gitignore",
    "chars": 133,
    "preview": "# Node build artifacts\nnode_modules\nnpm-debug.log\n\n# Local development\n*.env\n*.dev\n.DS_Store\n\n# Docker\nDockerfile\ndocker"
  },
  {
    "path": "aws/aws-ecs/nodejs/Procfile",
    "chars": 19,
    "preview": "web: node index.js\n"
  },
  {
    "path": "aws/aws-ecs/nodejs/README.md",
    "chars": 416,
    "preview": "# Waypoint AWS-ECS Example\n\n|Title|Description|\n|---|---|\n|Pack|Cloud Native Buildpack|\n|Cloud|AWS|\n|Language|NodeJS|\n|D"
  },
  {
    "path": "aws/aws-ecs/nodejs/index.js",
    "chars": 436,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nconst express = require('express')\nconst p"
  },
  {
    "path": "aws/aws-ecs/nodejs/main.tf",
    "chars": 994,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nterraform {\n  required_providers {\n    aws = {\n     "
  },
  {
    "path": "aws/aws-ecs/nodejs/package.json",
    "chars": 395,
    "preview": "{\n  \"name\": \"node-js-getting-started\",\n  \"version\": \"0.3.0\",\n  \"description\": \"A sample Node.js app using Express 4\",\n  "
  },
  {
    "path": "aws/aws-ecs/nodejs/packer.json",
    "chars": 661,
    "preview": "{\n  \"variables\": {\n    \"aws_access_key\": \"\",\n    \"aws_secret_key\": \"\"\n  },\n  \"builders\": [\n    {\n      \"type\": \"amazon-e"
  },
  {
    "path": "aws/aws-ecs/nodejs/public/stylesheets/main.css",
    "chars": 1612,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #E4E5E7;\n  --background:"
  },
  {
    "path": "aws/aws-ecs/nodejs/views/pages/index.ejs",
    "chars": 1004,
    "preview": "<!DOCTYPE html>\n<%/*\n  Copyright (c) HashiCorp, Inc.\n  SPDX-License-Identifier: MPL-2.0\n*/%>\n\n<html>\n  <head>\n    <%- in"
  },
  {
    "path": "aws/aws-ecs/nodejs/views/partials/header.ejs",
    "chars": 189,
    "preview": "<%/*\n  Copyright (c) HashiCorp, Inc.\n  SPDX-License-Identifier: MPL-2.0\n*/%>\n\n<title>Waypoint Node.js Example</title>\n<l"
  },
  {
    "path": "aws/aws-ecs/nodejs/waypoint.hcl",
    "chars": 471,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"aws-ecs-nodejs\"\n\napp \"ecs-nodejs-web\" {\n "
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/.gitignore",
    "chars": 1019,
    "preview": "# Node build artifacts\nnode_modules\nnpm-debug.log\n\n# Local development\n*.env\n*.dev\n.DS_Store\n\n# Docker\nDockerfile\ndocker"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/Procfile",
    "chars": 19,
    "preview": "web: node index.js\n"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/README.md",
    "chars": 1173,
    "preview": "# Waypoint AWS-ECS Example with a cluster sourced from TFC\n\n|Title|Description|\n|---|---|\n|Pack|Cloud Native Buildpack|\n"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/index.js",
    "chars": 436,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nconst express = require('express')\nconst p"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/package.json",
    "chars": 395,
    "preview": "{\n  \"name\": \"node-js-getting-started\",\n  \"version\": \"0.3.0\",\n  \"description\": \"A sample Node.js app using Express 4\",\n  "
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/packer.json",
    "chars": 661,
    "preview": "{\n  \"variables\": {\n    \"aws_access_key\": \"\",\n    \"aws_secret_key\": \"\"\n  },\n  \"builders\": [\n    {\n      \"type\": \"amazon-e"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/public/stylesheets/main.css",
    "chars": 1612,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #E4E5E7;\n  --background:"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/terraform/.terraform.lock.hcl",
    "chars": 1220,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\n# This file is maintained automatically by \"terrafor"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/terraform/backend.tf",
    "chars": 351,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\n# Using a single workspace:\nterraform {\n  backend \"r"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/terraform/ecs.tf",
    "chars": 591,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nresource \"aws_kms_key\" \"ecs\" {\n  description        "
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/terraform/main.tf",
    "chars": 287,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\ndata \"aws_vpc\" \"selected\" {\n  default = true\n}\n\noutp"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/terraform/outputs.tf",
    "chars": 177,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\noutput \"ecs_cluster_name\" {\n  value       = aws_ecs_"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/terraform/variables.tf",
    "chars": 579,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\n\nvariable \"name\" {\n  type        = string\n  descript"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/views/pages/index.ejs",
    "chars": 1004,
    "preview": "<!DOCTYPE html>\n<%/*\n  Copyright (c) HashiCorp, Inc.\n  SPDX-License-Identifier: MPL-2.0\n*/%>\n\n<html>\n  <head>\n    <%- in"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/views/partials/header.ejs",
    "chars": 189,
    "preview": "<%/*\n  Copyright (c) HashiCorp, Inc.\n  SPDX-License-Identifier: MPL-2.0\n*/%>\n\n<title>Waypoint Node.js Example</title>\n<l"
  },
  {
    "path": "aws/aws-ecs/nodejs-terraform/waypoint.hcl",
    "chars": 709,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"njs-ecs-tfc-demo\"\n\napp \"njs-ecs-tfc-demo\""
  },
  {
    "path": "aws/aws-ecs/python/Dockerfile",
    "chars": 382,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nFROM ubuntu:20.04\n\nENV LC_ALL=C.UTF-8\nENV LANG=C.UTF"
  },
  {
    "path": "aws/aws-ecs/python/README.md",
    "chars": 443,
    "preview": "# Getting Started with Waypoint and Flask\n\nThis is a slightly-modified version of the docker/python example, with change"
  },
  {
    "path": "aws/aws-ecs/python/app/app.py",
    "chars": 284,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nfrom flask import Flask, render_template\napplication"
  },
  {
    "path": "aws/aws-ecs/python/app/static/images/language.svg.old",
    "chars": 7087,
    "preview": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"50\" height=\"56\" viewBox=\"0 0 50 56\">\n  <path fill=\"#04C6C2\" fill-rule=\"ev"
  },
  {
    "path": "aws/aws-ecs/python/app/static/stylesheets/main.css",
    "chars": 1693,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #E4E5E7;\n  --background:"
  },
  {
    "path": "aws/aws-ecs/python/app/templates/index.html",
    "chars": 1134,
    "preview": "<!DOCTYPE html>\n<!--\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n-->\n\n<html>\n  <head>\n<title>Waypoi"
  },
  {
    "path": "aws/aws-ecs/python/app/wsgi.py",
    "chars": 146,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nfrom app import application\n\nif __name__ == \"__main_"
  },
  {
    "path": "aws/aws-ecs/python/requirements.txt",
    "chars": 22,
    "preview": "gevent\ngunicorn\nflask\n"
  },
  {
    "path": "aws/aws-ecs/python/waypoint.hcl",
    "chars": 451,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"aws-ecs-python\"\n\napp \"ecs-python\" {\n  lab"
  },
  {
    "path": "aws/ec2/README.md",
    "chars": 372,
    "preview": "# Waypoint AWS-EC2 Example\n\n|Title|Description|\n|---|---|\n|Pack|N/A|\n|Cloud|AWS|\n|Language|N/A|\n|Docs|[AWS-EC2](https://"
  },
  {
    "path": "aws/ec2/waypoint.hcl",
    "chars": 583,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"aws-ec2-nginx-ami\"\n\napp \"ec2-nginx\" {\n  l"
  },
  {
    "path": "aws/lambda/nodejs/waypoint.hcl",
    "chars": 525,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"aws-lambda-nodejs\"\n\napp \"lambda-nodejs-fu"
  },
  {
    "path": "aws/lambda/nodejs-graphql/.gitignore",
    "chars": 13,
    "preview": "node_modules\n"
  },
  {
    "path": "aws/lambda/nodejs-graphql/Dockerfile",
    "chars": 426,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\n###########\n# Builder #\n###########\nFROM public.ecr."
  },
  {
    "path": "aws/lambda/nodejs-graphql/README.md",
    "chars": 681,
    "preview": "# Waypoint Node.js GraphQL Example\n\n|Title|Description|\n|---|---|\n|Pack|Docker|\n|Cloud|AWS|\n|Language|NodeJS|\n|Docs|[AWS"
  },
  {
    "path": "aws/lambda/nodejs-graphql/index.js",
    "chars": 1014,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nconst { ApolloServer, gql } = require(\"apo"
  },
  {
    "path": "aws/lambda/nodejs-graphql/package.json",
    "chars": 401,
    "preview": "{\n  \"name\": \"waypoint-apollo-lambda\",\n  \"version\": \"0.1.0\",\n  \"description\": \"An Apollo GraphQL server intended to run o"
  },
  {
    "path": "aws/lambda/nodejs-graphql/waypoint.hcl",
    "chars": 767,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"waypoint-apollo-lambda\"\n\napp \"waypoint-ap"
  },
  {
    "path": "aws/lambda/ruby/Dockerfile",
    "chars": 157,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nFROM public.ecr.aws/lambda/ruby:2.7\n\nCOPY handler.rb"
  },
  {
    "path": "aws/lambda/ruby/README.md",
    "chars": 210,
    "preview": "# Getting Started with Waypoint and Lambda\n\nThis repo is a companion repo to the [Deploy Waypoint to AWS Lambda Learn tu"
  },
  {
    "path": "aws/lambda/ruby/handler.rb",
    "chars": 532,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nrequire 'json'\n\ndef handler(event:, context:)\n    qs"
  },
  {
    "path": "aws/lambda/ruby/waypoint.hcl",
    "chars": 457,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"learn-waypoint-lambda\"\n\napp \"learn-waypoi"
  },
  {
    "path": "azure/azure-container-instance/nodejs/.gitignore",
    "chars": 133,
    "preview": "# Node build artifacts\nnode_modules\nnpm-debug.log\n\n# Local development\n*.env\n*.dev\n.DS_Store\n\n# Docker\nDockerfile\ndocker"
  },
  {
    "path": "azure/azure-container-instance/nodejs/Procfile",
    "chars": 19,
    "preview": "web: node index.js\n"
  },
  {
    "path": "azure/azure-container-instance/nodejs/README.md",
    "chars": 328,
    "preview": "# Waypoint ACI Example\n\n|Title|Description|\n|---|---|\n|Pack|Cloud Native Buildpack|\n|Cloud|Azure|\n|Language|NodeJS|\n|Doc"
  },
  {
    "path": "azure/azure-container-instance/nodejs/index.js",
    "chars": 436,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nconst express = require('express')\nconst p"
  },
  {
    "path": "azure/azure-container-instance/nodejs/package.json",
    "chars": 466,
    "preview": "{\n  \"name\": \"node-js-getting-started\",\n  \"version\": \"0.3.0\",\n  \"description\": \"A sample Node.js app using Express 4\",\n  "
  },
  {
    "path": "azure/azure-container-instance/nodejs/public/stylesheets/main.css",
    "chars": 1612,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #E4E5E7;\n  --background:"
  },
  {
    "path": "azure/azure-container-instance/nodejs/views/pages/index.ejs",
    "chars": 1000,
    "preview": "<!DOCTYPE html>\n<%/*\n  Copyright (c) HashiCorp, Inc.\n  SPDX-License-Identifier: MPL-2.0\n*/%>\n\n<html>\n  <head>\n    <% inc"
  },
  {
    "path": "azure/azure-container-instance/nodejs/views/partials/header.ejs",
    "chars": 189,
    "preview": "<%/*\n  Copyright (c) HashiCorp, Inc.\n  SPDX-License-Identifier: MPL-2.0\n*/%>\n\n<title>Waypoint Node.js Example</title>\n<l"
  },
  {
    "path": "azure/azure-container-instance/nodejs/waypoint.hcl",
    "chars": 628,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"azure-container-nodejs\"\n\napp \"container-n"
  },
  {
    "path": "docker/angular/Procfile",
    "chars": 20,
    "preview": "web: node server.js\n"
  },
  {
    "path": "docker/angular/README.md",
    "chars": 1378,
    "preview": "# Angular Waypoint Demo Application\n\n![Angular Waypoint](angular-waypoint.png)\n\nThis application deploys an Angular base"
  },
  {
    "path": "docker/angular/angular.json",
    "chars": 3525,
    "preview": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \""
  },
  {
    "path": "docker/angular/browserslist",
    "chars": 429,
    "preview": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For addit"
  },
  {
    "path": "docker/angular/e2e/protractor.conf.js",
    "chars": 886,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n// @ts-check\n// Protractor configuration f"
  },
  {
    "path": "docker/angular/e2e/src/app.e2e-spec.ts",
    "chars": 722,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { AppPage } from './app.po';\nimport"
  },
  {
    "path": "docker/angular/e2e/src/app.po.ts",
    "chars": 340,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { browser, by, element } from 'prot"
  },
  {
    "path": "docker/angular/e2e/tsconfig.json",
    "chars": 190,
    "preview": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/e2e\",\n    \"module\": \"commonjs\",\n    "
  },
  {
    "path": "docker/angular/karma.conf.js",
    "chars": 1101,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n// Karma configuration file, see link for "
  },
  {
    "path": "docker/angular/package.json",
    "chars": 1340,
    "preview": "{\n  \"name\": \"angular\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"start\": \"ng serve\",\n    \"build\": \"ng bu"
  },
  {
    "path": "docker/angular/server.js",
    "chars": 445,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nconst express = require('express')\nconst p"
  },
  {
    "path": "docker/angular/src/app/app.component.html",
    "chars": 1064,
    "preview": "<!DOCTYPE html>\n<!--\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n-->\n\n<html>\n  <head>\n    <title>Wa"
  },
  {
    "path": "docker/angular/src/app/app.component.scss",
    "chars": 78,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n"
  },
  {
    "path": "docker/angular/src/app/app.component.spec.ts",
    "chars": 1074,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { TestBed, async } from '@angular/c"
  },
  {
    "path": "docker/angular/src/app/app.component.ts",
    "chars": 294,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { Component } from '@angular/core';"
  },
  {
    "path": "docker/angular/src/app/app.module.ts",
    "chars": 392,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { BrowserModule } from '@angular/pl"
  },
  {
    "path": "docker/angular/src/assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docker/angular/src/environments/environment.prod.ts",
    "chars": 129,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nexport const environment = {\n  production:"
  },
  {
    "path": "docker/angular/src/environments/environment.ts",
    "chars": 740,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n// This file can be replaced during build "
  },
  {
    "path": "docker/angular/src/index.html",
    "chars": 380,
    "preview": "<!doctype html>\n<!--\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n-->\n\n<html lang=\"en\">\n<head>\n  <me"
  },
  {
    "path": "docker/angular/src/main.ts",
    "chars": 450,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport { enableProdMode } from '@angular/c"
  },
  {
    "path": "docker/angular/src/polyfills.ts",
    "chars": 2916,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n/**\n * This file includes polyfills needed"
  },
  {
    "path": "docker/angular/src/styles.scss",
    "chars": 1694,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #e4e5e7;\n  --background:"
  },
  {
    "path": "docker/angular/src/test.ts",
    "chars": 720,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n// This file is required by karma.conf.js "
  },
  {
    "path": "docker/angular/tsconfig.app.json",
    "chars": 270,
    "preview": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/app\",\n    \"types\": []\n  },\n  \"files\": "
  },
  {
    "path": "docker/angular/tsconfig.json",
    "chars": 543,
    "preview": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"baseUrl\": \"./\",\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\":"
  },
  {
    "path": "docker/angular/tsconfig.spec.json",
    "chars": 270,
    "preview": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./out-tsc/spec\",\n    \"types\": [\n      \"jasmine\","
  },
  {
    "path": "docker/angular/tslint.json",
    "chars": 1953,
    "preview": "{\n  \"extends\": \"tslint:recommended\",\n  \"rules\": {\n    \"array-type\": false,\n    \"arrow-parens\": false,\n    \"deprecation\":"
  },
  {
    "path": "docker/angular/waypoint.hcl",
    "chars": 188,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"angular-example\"\n\napp \"angular\" {\n  build"
  },
  {
    "path": "docker/aspnetapp/.dockerignore",
    "chars": 9,
    "preview": "bin/\nobj/"
  },
  {
    "path": "docker/aspnetapp/.gitignore",
    "chars": 17,
    "preview": "bin/*\nobj/*\nout/*"
  },
  {
    "path": "docker/aspnetapp/Pages/Error.cshtml",
    "chars": 880,
    "preview": "@page\r\n@model ErrorModel\r\n@{\r\n    ViewData[\"Title\"] = \"Error\";\r\n}\r\n\r\n<h1 class=\"text-danger\">Error.</h1>\r\n<h2 class=\"te"
  },
  {
    "path": "docker/aspnetapp/Pages/Error.cshtml.cs",
    "chars": 911,
    "preview": "// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\nusing System;\r\nusing System.Collections.Generic;\r\n"
  },
  {
    "path": "docker/aspnetapp/Pages/Index.cshtml",
    "chars": 356,
    "preview": "@page\r\n@model IndexModel\r\n@{\r\n    ViewData[\"Title\"] = \"ASP.NET on Waypoint\";\r\n}\r\n\r\n<h1>This ASP.NET app was deployed wi"
  },
  {
    "path": "docker/aspnetapp/Pages/Index.cshtml.cs",
    "chars": 596,
    "preview": "// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\nusing System;\r\nusing System.Collections.Generic;\r"
  },
  {
    "path": "docker/aspnetapp/Pages/Privacy.cshtml",
    "chars": 170,
    "preview": "@page\r\n@model PrivacyModel\r\n@{\r\n    ViewData[\"Title\"] = \"Privacy Policy\";\r\n}\r\n<h1>@ViewData[\"Title\"]</h1>\r\n\r\n<p>Use thi"
  },
  {
    "path": "docker/aspnetapp/Pages/Privacy.cshtml.cs",
    "chars": 602,
    "preview": "// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\nusing System;\r\nusing System.Collections.Generic;\r"
  },
  {
    "path": "docker/aspnetapp/Pages/Shared/_Layout.cshtml",
    "chars": 861,
    "preview": "<!DOCTYPE html>\r\n<html>\r\n\r\n<head>\r\n    <title>@ViewData[\"Title\"] - Waypoint</title>\r\n    <link rel=\"stylesheet\" type=\"t"
  },
  {
    "path": "docker/aspnetapp/Pages/Shared/_ValidationScriptsPartial.cshtml",
    "chars": 174,
    "preview": "<script src=\"~/lib/jquery-validation/dist/jquery.validate.min.js\"></script>\r\n<script src=\"~/lib/jquery-validation-unobt"
  },
  {
    "path": "docker/aspnetapp/Pages/_ViewImports.cshtml",
    "chars": 100,
    "preview": "@using aspnetapp\r\n@namespace aspnetapp.Pages\r\n@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers\r\n"
  },
  {
    "path": "docker/aspnetapp/Pages/_ViewStart.cshtml",
    "chars": 33,
    "preview": "@{\r\n    Layout = \"_Layout\";\r\n}\r\n"
  },
  {
    "path": "docker/aspnetapp/Program.cs",
    "chars": 787,
    "preview": "// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\nusing System;\r\nusing System.Collections.Generic;\r\n"
  },
  {
    "path": "docker/aspnetapp/Properties/launchSettings.json",
    "chars": 867,
    "preview": "{\r\n  \"iisSettings\": {\r\n    \"windowsAuthentication\": false,\r\n    \"anonymousAuthentication\": true,\r\n    \"iisExpress\": {\r\n"
  },
  {
    "path": "docker/aspnetapp/README.md",
    "chars": 701,
    "preview": "# Waypoint ASP.NET Example\n\n|Title|Description|\n|---|---|\n|Pack|Cloud Native Buildpack|\n|Cloud|Local|\n|Language|ASP.NET|"
  },
  {
    "path": "docker/aspnetapp/Startup.cs",
    "chars": 1513,
    "preview": "// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\nusing System;\r\nusing System.Collections.Generic;\r\n"
  },
  {
    "path": "docker/aspnetapp/appsettings.Development.json",
    "chars": 162,
    "preview": "{\n  \"Logging\": {\n    \"LogLevel\": {\n      \"Default\": \"Information\",\r\n      \"Microsoft\": \"Warning\",\r\n      \"Microsoft.Host"
  },
  {
    "path": "docker/aspnetapp/appsettings.json",
    "chars": 192,
    "preview": "{\r\n  \"Logging\": {\r\n    \"LogLevel\": {\r\n      \"Default\": \"Information\",\r\n      \"Microsoft\": \"Warning\",\r\n      \"Microsoft.H"
  },
  {
    "path": "docker/aspnetapp/aspnetapp.csproj",
    "chars": 148,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk.Web\">\r\n\r\n  <PropertyGroup>\r\n    <TargetFramework>netcoreapp3.1</TargetFramework>\r\n  </Pr"
  },
  {
    "path": "docker/aspnetapp/waypoint.hcl",
    "chars": 356,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"example-dotnet\"\n\napp \"web\" {\n  labels = {"
  },
  {
    "path": "docker/aspnetapp/wwwroot/static/stylesheets/main.css",
    "chars": 1693,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #E4E5E7;\n  --background:"
  },
  {
    "path": "docker/go/README.md",
    "chars": 786,
    "preview": "# Waypoint Go Example\n\n| Title    | Description                                                                         "
  },
  {
    "path": "docker/go/go.mod",
    "chars": 93,
    "preview": "module github.com/hashicorp/waypoint-examples/docker/go\n\n// +heroku goVersion go1.15\ngo 1.15\n"
  },
  {
    "path": "docker/go/main.go",
    "chars": 360,
    "preview": "// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\npackage main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n)"
  },
  {
    "path": "docker/go/static/index.html",
    "chars": 1089,
    "preview": "<!DOCTYPE html>\n<!--\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n-->\n\n<html>\n\n<head>\n  <title>Waypo"
  },
  {
    "path": "docker/go/static/static/stylesheets/main.css",
    "chars": 1693,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #E4E5E7;\n  --background:"
  },
  {
    "path": "docker/go/waypoint.hcl",
    "chars": 251,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"example-go\"\n\napp \"example-go\" {\n  labels "
  },
  {
    "path": "docker/go-multiapp/README.md",
    "chars": 786,
    "preview": "# Waypoint Go Example\n\n| Title    | Description                                                                         "
  },
  {
    "path": "docker/go-multiapp/go.mod",
    "chars": 102,
    "preview": "module github.com/hashicorp/waypoint-examples/docker/go-multiapp\n\n// +heroku goVersion go1.17\ngo 1.17\n"
  },
  {
    "path": "docker/go-multiapp/main.go",
    "chars": 360,
    "preview": "// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\npackage main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n)"
  },
  {
    "path": "docker/go-multiapp/static/index.html",
    "chars": 1089,
    "preview": "<!DOCTYPE html>\n<!--\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n-->\n\n<html>\n\n<head>\n  <title>Waypo"
  },
  {
    "path": "docker/go-multiapp/static/static/stylesheets/main.css",
    "chars": 1693,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #E4E5E7;\n  --background:"
  },
  {
    "path": "docker/go-multiapp/waypoint.hcl",
    "chars": 391,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"example-go\"\n\napp \"app-1\" {\n  labels = {\n "
  },
  {
    "path": "docker/java/.gitignore",
    "chars": 322,
    "preview": "target/\n.env\n.waypoint/\n\n### STS ###\n.apt_generated\n.classpath\n.factorypath\n.project\n.settings\n.springBeans\n.sts4-cache\n"
  },
  {
    "path": "docker/java/.mvn/wrapper/maven-wrapper.properties",
    "chars": 109,
    "preview": "distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip"
  },
  {
    "path": "docker/java/README.md",
    "chars": 2511,
    "preview": "# Java Getting Started\n\n|Title|Description|\n|---|---|\n|Pack|Multiple (read notes below)|\n|Cloud|Multiple|\n|Language|Java"
  },
  {
    "path": "docker/java/mvnw",
    "chars": 16579,
    "preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
  },
  {
    "path": "docker/java/mvnw.cmd",
    "chars": 6790,
    "preview": "@REM ----------------------------------------------------------------------------\r\n@REM Licensed to the Apache Software "
  },
  {
    "path": "docker/java/pom.xml",
    "chars": 1749,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n-->\n\n<proje"
  },
  {
    "path": "docker/java/src/main/java/com/example/waypoint/WaypointApplication.java",
    "chars": 582,
    "preview": "/*\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\npackage com.example.waypoint;\n\nimport org.s"
  },
  {
    "path": "docker/java/src/main/resources/application.properties",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "docker/java/src/main/resources/public/stylesheets/main.css",
    "chars": 1612,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #E4E5E7;\n  --background:"
  },
  {
    "path": "docker/java/src/main/resources/templates/fragments/layout.html",
    "chars": 454,
    "preview": "<!doctype html>\n<!--\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n-->\n\n<html th:fragment=\"layout (te"
  },
  {
    "path": "docker/java/src/main/resources/templates/index.html",
    "chars": 1026,
    "preview": "<!DOCTYPE html>\n<!--\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n-->\n\n<html xmlns:th=\"http://www.th"
  },
  {
    "path": "docker/java/src/test/java/com/example/waypoint/WaypointApplicationTests.java",
    "chars": 291,
    "preview": "/*\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\npackage com.example.waypoint;\n\nimport org.j"
  },
  {
    "path": "docker/java/system.properties",
    "chars": 23,
    "preview": "java.runtime.version=11"
  },
  {
    "path": "docker/java/waypoint.hcl",
    "chars": 267,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"example-java\"\n\napp \"example-java\" {\n  bui"
  },
  {
    "path": "docker/java/waypoint.hcl.gcp",
    "chars": 228,
    "preview": "project = \"example-java\"\n\napp \"example-java\" {\n    build {\n        use \"pack\" {\n            builder=\"gcr.io/buildpacks/b"
  },
  {
    "path": "docker/java/waypoint.hcl.heroku",
    "chars": 132,
    "preview": "project = \"example-java\"\n\napp \"example-java\" {\n    build {\n        use \"pack\" {}\n    }\n    deploy {\n        use \"docker\""
  },
  {
    "path": "docker/java/waypoint.hcl.paketo",
    "chars": 231,
    "preview": "project = \"example-java\"\n\napp \"example-java\" {\n    build {\n        use \"pack\" {\n            builder=\"paketobuildpacks/bu"
  },
  {
    "path": "docker/next-js/.gitignore",
    "chars": 386,
    "preview": "# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n/.pn"
  },
  {
    "path": "docker/next-js/README.md",
    "chars": 284,
    "preview": "# Waypoint Next.js Example\n\n|Title|Description|\n|---|---|\n|Pack|Cloud Native Buildpack|\n|Cloud|Local|\n|Language|JavaScri"
  },
  {
    "path": "docker/next-js/package.json",
    "chars": 258,
    "preview": "{\n  \"name\": \"next-js\",\n  \"version\": \"0.1.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"dev\": \"next dev\",\n    \"build\": \"next"
  },
  {
    "path": "docker/next-js/pages/_app.js",
    "chars": 215,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport '../styles/globals.css'\n\nfunction M"
  },
  {
    "path": "docker/next-js/pages/api/hello.js",
    "chars": 246,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n// Next.js API route support: https://next"
  },
  {
    "path": "docker/next-js/pages/index.js",
    "chars": 1196,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Head from 'next/head'\nimport styles"
  },
  {
    "path": "docker/next-js/styles/Home.module.css",
    "chars": 977,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n.container {\n  display: flex;\n  flex-direc"
  },
  {
    "path": "docker/next-js/styles/globals.css",
    "chars": 703,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #E4E5E7;\n  --background:"
  },
  {
    "path": "docker/next-js/waypoint.hcl",
    "chars": 263,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"example-nextjs\"\n\napp \"example-nextjs\" {\n "
  },
  {
    "path": "docker/nodejs/.gitignore",
    "chars": 133,
    "preview": "# Node build artifacts\nnode_modules\nnpm-debug.log\n\n# Local development\n*.env\n*.dev\n.DS_Store\n\n# Docker\nDockerfile\ndocker"
  },
  {
    "path": "docker/nodejs/Procfile",
    "chars": 19,
    "preview": "web: node index.js\n"
  },
  {
    "path": "docker/nodejs/README.md",
    "chars": 283,
    "preview": "# Waypoint NodeJS Example\n\n|Title|Description|\n|---|---|\n|Pack|Cloud Native Buildpack|\n|Cloud|Local|\n|Language|JavaScrip"
  },
  {
    "path": "docker/nodejs/index.js",
    "chars": 436,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nconst express = require('express')\nconst p"
  },
  {
    "path": "docker/nodejs/package.json",
    "chars": 466,
    "preview": "{\n  \"name\": \"node-js-getting-started\",\n  \"version\": \"0.3.0\",\n  \"description\": \"A sample Node.js app using Express 4\",\n  "
  },
  {
    "path": "docker/nodejs/public/stylesheets/main.css",
    "chars": 1612,
    "preview": "/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\n:root {\n  --text: #E4E5E7;\n  --background:"
  },
  {
    "path": "docker/nodejs/views/pages/index.ejs",
    "chars": 1000,
    "preview": "<!DOCTYPE html>\n<%/*\n  Copyright (c) HashiCorp, Inc.\n  SPDX-License-Identifier: MPL-2.0\n*/%>\n\n<html>\n  <head>\n    <% inc"
  },
  {
    "path": "docker/nodejs/views/partials/header.ejs",
    "chars": 189,
    "preview": "<%/*\n  Copyright (c) HashiCorp, Inc.\n  SPDX-License-Identifier: MPL-2.0\n*/%>\n\n<title>Waypoint Node.js Example</title>\n<l"
  },
  {
    "path": "docker/nodejs/waypoint.hcl",
    "chars": 263,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nproject = \"example-nodejs\"\n\napp \"example-nodejs\" {\n "
  },
  {
    "path": "docker/php/.editorconfig",
    "chars": 220,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 4\ntrim_"
  },
  {
    "path": "docker/php/.gitattributes",
    "chars": 111,
    "preview": "* text=auto\n*.css linguist-vendored\n*.scss linguist-vendored\n*.js linguist-vendored\nCHANGELOG.md export-ignore\n"
  },
  {
    "path": "docker/php/.gitignore",
    "chars": 158,
    "preview": "/node_modules\n/public/hot\n/public/storage\n/storage/*.key\n/vendor\n.env.backup\n.phpunit.result.cache\nHomestead.json\nHomest"
  },
  {
    "path": "docker/php/.styleci.yml",
    "chars": 242,
    "preview": "# Copyright (c) HashiCorp, Inc.\n# SPDX-License-Identifier: MPL-2.0\n\nphp:\n  preset: laravel\n  disabled:\n    - unused_use\n"
  },
  {
    "path": "docker/php/Procfile",
    "chars": 41,
    "preview": "web: vendor/bin/heroku-php-nginx public/\n"
  },
  {
    "path": "docker/php/README.md",
    "chars": 613,
    "preview": "# Waypoint PHP Example\n\n|Title|Description|\n|---|---|\n|Pack|Cloud Native Buildpack|\n|Cloud|Local|\n|Language|PHP|\n|Docs|["
  },
  {
    "path": "docker/php/app/Console/Kernel.php",
    "chars": 897,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Console;\n\nuse Illuminate\\Cons"
  },
  {
    "path": "docker/php/app/Exceptions/Handler.php",
    "chars": 740,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Exceptions;\n\nuse Illuminate\\F"
  },
  {
    "path": "docker/php/app/Http/Controllers/Controller.php",
    "chars": 431,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Http\\Controllers;\n\nuse Illumi"
  },
  {
    "path": "docker/php/app/Http/Kernel.php",
    "chars": 2464,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Http;\n\nuse Illuminate\\Foundat"
  },
  {
    "path": "docker/php/app/Http/Middleware/Authenticate.php",
    "chars": 539,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Http\\Middleware;\n\nuse Illumin"
  },
  {
    "path": "docker/php/app/Http/Middleware/EncryptCookies.php",
    "chars": 364,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Http\\Middleware;\n\nuse Illumin"
  },
  {
    "path": "docker/php/app/Http/Middleware/PreventRequestsDuringMaintenance.php",
    "chars": 423,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Http\\Middleware;\n\nuse Illumin"
  },
  {
    "path": "docker/php/app/Http/Middleware/RedirectIfAuthenticated.php",
    "chars": 767,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Http\\Middleware;\n\nuse App\\Pro"
  },
  {
    "path": "docker/php/app/Http/Middleware/TrimStrings.php",
    "chars": 410,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Http\\Middleware;\n\nuse Illumin"
  },
  {
    "path": "docker/php/app/Http/Middleware/TrustHosts.php",
    "chars": 424,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Http\\Middleware;\n\nuse Illumin"
  },
  {
    "path": "docker/php/app/Http/Middleware/TrustProxies.php",
    "chars": 517,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Http\\Middleware;\n\nuse Fidelop"
  },
  {
    "path": "docker/php/app/Http/Middleware/VerifyCsrfToken.php",
    "chars": 377,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Http\\Middleware;\n\nuse Illumin"
  },
  {
    "path": "docker/php/app/Models/User.php",
    "chars": 878,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Models;\n\nuse Illuminate\\Contr"
  },
  {
    "path": "docker/php/app/Providers/AppServiceProvider.php",
    "chars": 473,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Providers;\n\nuse Illuminate\\Su"
  },
  {
    "path": "docker/php/app/Providers/AuthServiceProvider.php",
    "chars": 648,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Providers;\n\nuse Illuminate\\Fo"
  },
  {
    "path": "docker/php/app/Providers/BroadcastServiceProvider.php",
    "chars": 450,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Providers;\n\nuse Illuminate\\Su"
  },
  {
    "path": "docker/php/app/Providers/EventServiceProvider.php",
    "chars": 755,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Providers;\n\nuse Illuminate\\Au"
  },
  {
    "path": "docker/php/app/Providers/RouteServiceProvider.php",
    "chars": 1577,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nnamespace App\\Providers;\n\nuse Illuminate\\Ca"
  },
  {
    "path": "docker/php/artisan",
    "chars": 1686,
    "preview": "#!/usr/bin/env php\n<?php\n\ndefine('LARAVEL_START', microtime(true));\n\n/*\n|-----------------------------------------------"
  },
  {
    "path": "docker/php/bootstrap/app.php",
    "chars": 1690,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\n/*\n|---------------------------------------"
  },
  {
    "path": "docker/php/bootstrap/cache/.gitignore",
    "chars": 14,
    "preview": "*\n!.gitignore\n"
  },
  {
    "path": "docker/php/composer.json",
    "chars": 1608,
    "preview": "{\n    \"name\": \"laravel/laravel\",\n    \"type\": \"project\",\n    \"description\": \"The Laravel Framework.\",\n    \"keywords\": [\n "
  },
  {
    "path": "docker/php/config/app.php",
    "chars": 9309,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nreturn [\n\n    /*\n    |---------------------"
  },
  {
    "path": "docker/php/config/auth.php",
    "chars": 3873,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nreturn [\n\n    /*\n    |---------------------"
  },
  {
    "path": "docker/php/config/broadcasting.php",
    "chars": 1671,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nreturn [\n\n    /*\n    |---------------------"
  },
  {
    "path": "docker/php/config/cache.php",
    "chars": 3170,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nuse Illuminate\\Support\\Str;\n\nreturn [\n\n    "
  },
  {
    "path": "docker/php/config/cors.php",
    "chars": 893,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nreturn [\n\n    /*\n    |---------------------"
  },
  {
    "path": "docker/php/config/database.php",
    "chars": 5124,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nuse Illuminate\\Support\\Str;\n\nreturn [\n\n    "
  },
  {
    "path": "docker/php/config/filesystems.php",
    "chars": 2758,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nreturn [\n\n    /*\n    |---------------------"
  },
  {
    "path": "docker/php/config/hashing.php",
    "chars": 1641,
    "preview": "<?php\n// Copyright (c) HashiCorp, Inc.\n// SPDX-License-Identifier: MPL-2.0\n\n\nreturn [\n\n    /*\n    |---------------------"
  }
]

// ... and 378 more files (download for full content)

About this extraction

This page contains the full source code of the hashicorp/waypoint-examples GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 578 files (510.8 KB), approximately 159.9k tokens, and a symbol index with 156 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!