Giter VIP home page Giter VIP logo

awala-pong's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar gnarea avatar

Watchers

 avatar  avatar

awala-pong's Issues

Set up development environment

  • Configure Docker / Docker Compose (inc. MongoDB container).
  • Configure linter.
  • Configure build automation.
  • Configure test runner.
  • Configure CIS.
  • Etc.

Create Terraform module

The objective here is to deploy the app to GCP, but leverage Kubernetes as much as possible to avoid vendor lock-in.

Use Relaynet-Internet Gateway in functional test suite

We're currently creating a mock HTTP server that mimics the gateway and runs on the host computer, so the Pong queue can't reach it from within Kubernetes.

Instead of finding an awful workaround to make this mock server reachable from a pod, we should just deploy the public gateway. This is essentially what we're already doing in the Relaynet-Internet Gateway functional test suite: We're deploying both apps locally, and then using a PoWeb client to communicate with the Pong app.

Once we do this, we should also ditch Circle CI and move the functional test suite run into the existing GitHub Actions workflow.

Implement public endpoint

To receive ping messages.

The scope of this ticket is to return the appropriate HTTP response per PoHTTP, without actually processing the parcel -- That'd be part of #2.

Implement key rotation

The current implementation only supports one key pair at a time and the private key should be specified in the environment, which makes it hard to deploy and operate this app securely.

To solve this, we should integrate Hashicorp Vault, possibly along with istio to avoid having to manage Vault client credentials.

Write documentation

  • Intro to prospective contributors.
  • Document install instructions.
  • README.

Functional tests can no longer be run locally

Not sure when they broke, but they don't work with 5feabd8 at least. 56a2a0e may be the culprit, considering the error:

gateway_1  | FAIL build/main/functional_tests/main.test.js
gateway_1  |   โ— Test suite failed to run
gateway_1  | 
gateway_1  |     Cannot find module '@relaycorp/keystore-vault' from 'main.test.js'
gateway_1  | 
gateway_1  |       1 | /* tslint:disable:no-let */
gateway_1  |     > 2 | import { VaultPrivateKeyStore } from '@relaycorp/keystore-vault';
gateway_1  |         | ^
gateway_1  |       3 | import {
gateway_1  |       4 |   Certificate,
gateway_1  |       5 |   EnvelopedData,
gateway_1  | 
gateway_1  |       at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:259:17)
gateway_1  |       at Object.<anonymous> (src/functional_tests/main.test.ts:2:1)
gateway_1  | 
gateway_1  | Test Suites: 1 failed, 1 total
gateway_1  | Tests:       0 total
gateway_1  | Snapshots:   0 total
gateway_1  | Time:        0.914s
gateway_1  | Ran all test suites.

The odd thing is that the functional test suite works perfectly on Circle CI.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.