Giter Club home page Giter Club logo

playground's People

Contributors

mattklein123 avatar phlax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

playground's Issues

Add api/ui form validation

i reckon a jsonschema validation decorator can be created/used for the api validation

on the client its just a matter of fixing the react forms

Add docker-in-docker recipe for those that dont want to expose root on host to api

Running with privileged and /var/run/docker.sock exposes root on the host

Running inside docker-in-docker limits this.

It still requires privileged but doesnt require the host docker socket - so doesnt expose root escalation directly.

This has some potential downsides/anti-patterns/features dep on pov

It would automatically stop all playground containers on exit of the playground container, eg.

Add system log widget

Most of the ui is driven by events emitted from docker.

These could be output to a log widget so you can see eg containers starting/stopping, networks attaching etc

Add (more) tests

The framework for react and aio/pytest testing has been added.

Tests have not yet...

Add i18n/l10n

This would make it really handy learning tool for envoy

Disable actions once clicked

When you click on something twice quickly (eg removing a service/proxy etc) then it sends the remove signal twice

its quite handy that this isnt fixed right now as the api then throws unhandled docker errors, and this needs to be fixed first i think

Add log streaming

The envoy proxy container is configured to allow streaming to a mounted volume

it would be great to hook up any files there and also the docker stream for a particular proxy to a logging window

would also be useful for services

Add javascript yaml validation

yaml config is validated in requests before it reaches the api

it would be useful if it was also validated while the user typed (i guess with highlighting of errors would be ideal)

even better would be for Envoy config linting, which might be possible when Envoy has jsonschema dumps.

ref envoyproxy/envoy#13254 and envoyproxy/envoy#13233

Add network aliasing

I have added half of the implementation for network aliasing already, altho im thinking its not an essential feature so im removing the current implementation for now.

It would be good to add this back - but it would be better to create a general network configuration ui for proxies and services rather than the current implementation

Add edges widget

This should a proxy for each port that is exposed - perhaps with color coded labels according to which proxy instance is exposing the port

Add envoy-only egress mode (for networks)

We might want to restrict what egress a service has and essentially force it route through envoy, if it wants/requires egress traffic

I think it should be doable from the docker side.

The main thing that would need to be added i think is a hidden network for envoy egress, or perhaps envoy would just need to be on a network allowing egress

however its implemented i can imagine quite a lot of reasons/ways that you would want to restrict egress traffic - esp from services

Add save/load functionality

Ideally this should be pluggable to different formats.

formats im thinking of are

  • browser storage
  • zipped docker-compose (ie envoy sandbox)
  • github repo/dir - would require key setup if saving/exporting

the big issue is cerficates. Im thinking this is ok if we add a big warning not to expose real certs in playground configs (everywhere)

Separate docker event listener from ws connection

atm it starts listening to docker events only when the websocket is connected to.

this is fine for most events, but if the event is to cleanup the stale volumes/artifacts or other docker debris, then it is missed

the complexity here is that it needs to rem/forget the ws connection/s and publish to them - which would also make it work/better with multiple connections

Make js/python tests/lint work correctly

currently the linting is just for files that happened to be touched as the test paths are hard coded

this needs the test paths to be fixed, and any adjustments in package.json and setup.cfg as required

Improve event update data

The data received in initial dump is not always consistent with data in updates

  • port mappings

probs some others

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.