-
-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UI + Rest API + Webhooks Anyone? #266
Comments
Glad to hear you're finding this as useful as we do! 👍 I would echo your efforts here. I've had a few requests over the years for a UI side project. I've built a simple bar chart in our application to get a good visual of activity, and I'm also hosting my own api for interacting with To build the chart, I created an api route that returns a memcache from |
We switched scope on this a little bit and decided to build a dedicated UI without the other bells and whistles. The monitoring, webhooks, slack notifications and api are now handled in another layer. It's now a simple node server and frontend that gives us the much needed visibility into the queue we really needed, and makes it easier to open source. Here's some screenshots (we also have charts but their not finalized): create-job-2.mp4To summarize what this is:
Currently thinking of calling this |
Love it! |
Hi Folks, We've implemented a UI for Boss. It requires two components, an API to provide secure access to the Boss queue via a websocket, and UI which is static. https://github.com/y5labs/boss-api The API has been released as a docker container: We're running the UI here: When hosted securely the UI can only connect to secure APIs. To run locally you'll want to pull the two repositories, spin up a PostgreSQL server. Boss API requires environment variables:
And can be installed using
An API key and secret need to be generated. The API runs a telnet server internally. These commands will generate a new key and secret.
Secrets are not stored securely in the database. In a future update we'll salt them. The UI can be run using these commands
Feedback is welcome. |
@ashconnell that looks really nice! Do you have a public repo for that? I would also use that and contribute if I can. @tcoats great work! can you provide some screenshots to show the functionality of your UI? I would prefer to see the existing queues with the metrics and then look into each queue to get the jobs. I like the overview in bull-monitor (as we also use bull in other projects) https://s-r-x.github.io/bull-monitor/ |
@phips28 Not sure if you've found it yet but you can click on each collection of jobs - e.g. from your screenshot you can click on the We use bull too!. Looking at Bull Monitor the difference is that Boss Control doesn't show all queues when viewing the details of a single queue. We could add this. Feedback is welcome, thank you. My original design is on Excalidraw if it's of interest. |
I'd like to include links to these projects in the readme if you guys are interested ilo of keeping this issue open. |
@timgit sounds good to me. I'll need to update our packages to match 7alpha. |
This issue has been linked from the docs now. |
Hi @ashconnell is this available in a public repo? |
We found pg-boss to be a great solution as it allows us to use Postgres and Node for our app and our queue! There's nothing worse than needing to manage another DB eg Redis, or adding another language to your stack.
I immediately noticed a few things that would improve the way we use it so we've decided to build a self-contained server that does all of the following:
POST /jobs
andDELETE /jobs/:jobId
etcOur app servers now enqueue jobs by making a request to the pg-boss server, and also process them (when the time comes) via webhook.
We've done a first pass at all of the above and it's looking promising. The whole thing (API, UI and Processing) is powered by Next.js so the code is pretty lightweight.
I'm wondering if this is something others might be interested in?
One thing i'm not sure about is whether people would like the way it processes via webhooks instead of doing the processing on the box. We decided to do this for 2 reasons:
Thoughts? Questions?
The text was updated successfully, but these errors were encountered: