forsam-education / cerberus Goto Github PK
View Code? Open in Web Editor NEWA simple but powerful reverse proxy with authentication and middleware capabilities. NOT PRODUCTION READY !
License: MIT License
A simple but powerful reverse proxy with authentication and middleware capabilities. NOT PRODUCTION READY !
License: MIT License
Is your feature request related to a problem? Please describe.
Today, the reverse proxy is based on fastHTTP, and the administration is based on net/http. Two problems emerge from that :
Describe the solution you'd like
Administration server should be based on fastHTTP
Describe alternatives you've considered
Keep going like we do now.
The biggest problem is if we can't go further in the development of the project because we have to rely on fastHTTP. For now on, the project is small enough to consider refactor it without wasting too much time. If the administration application grow too much, it will be very painful to do so.
Use fastHTTPAdaptador
It could be an option, yet it seems that it implies keeping net/http AND fastHTTP which doesn't seem conceptually right, especially at the begining of the project where we can do a real transition.
Additional context
CodeFactor found an issue: The cancel function returned by context.WithTimeout should be called, not discarded, to avoid a context leak
It's currently on:
cmd\start.go:72
Describe the bug
On Cerberus startup, while it is trying to connect to the database and retries, you can't shutdown it with CTRL+C.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
CTRL+C shuts the server down.
Environment (please complete the following information):
Dependabot couldn't find a package.json for this project.
Dependabot requires a package.json to evaluate your project's current JavaScript dependencies. It had expected to find one at the path: /web/package.json
.
If this isn't a JavaScript project, or if it is a library, you may wish to disable updates for it from within Dependabot.
Is your feature request related to a problem? Please describe.
Today, you have to reload Cerberus to update data about services from database to make it available.
Describe the solution you'd like
It would be nicer to be able to :
/proxy/services.go#services
), if it is: serveAdditional context
Database : Implies updatedAt
lastChecked
in MySQL ans check which one is bigger in go
Mutex : to prevent weird behaviour in case of simultaneous writing, prevent with a mutex concurrent writings in /proxy/services.go#services
Also possible in the future : It will be possible to bypass memory and only rely on Redis for services
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.