Git Product home page Git Product logo

co-chair's People

Contributors

anxiousmodernman avatar jeffmay avatar nearhan avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

xirdigh

co-chair's Issues

Clustering

Not sure if co-chair does this but what about clustering using boltdb raft ?
That is how consul do it but since you want a very simple system you can just use one of the boltdb raft libraries.

Deletes in UI are incorrectly represented until refresh

A list of proxied backends is our main UI view. Every active proxy has a "delete" button. Clicking this button issues the correct grpc call to the backend, but in the UI only the last item is removed. We should remove the item corresponding to the button clicked.

Before clicking delete on "coleman":
before

After clicking delete:
after

After refresh:
refresh

Bundle and build ts assets into the golang binary

We need to bundle compiled Typescript, CSS, and HTML into the golang binary with some modifications
to our build script.

There might be some changes in web.go to serve different assets, it's TBD.

Make cookie store secret configurable

Loaded in init:

Store = sessions.NewCookieStore([]byte("something-very-secret"))

Maybe randomness is a suitable default, as well. The worst that should happen is folks lose their session on restart. A bummer, but more secure than hardcoding something.

Incorporating automatic HTTPS

Current state:

We rely on API clients to send cert and key as []byte when adding a backend to the proxy. When we receive a connection, we look at the domain on the request and query the database to find the associated entry with the cert we require.

Problems:

  1. If we had a wildcard cert for several subdomains, we'd have to duplicate the data in the database. For example, for domains one.example.com and two.example.com, they would both need duplicate bytes for a valid *.example.com wildcard cert.
  2. We don't provide a magical option for LetsEncrypt

Our goal is to do what Caddy does, which is to attempt to transparently provide https via letsencrypt if a path to a cert and key are not provided.

We'll also want to:

  • separate the storage of x509 certs and keys from other backend metadata, so that it is easier to cache and re-used certs and keys.
  • Always check the cache first, not just for existence, but for the validity/expiration of a cert. Hit Let's Encrypt's API as little as possible in other words.

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.