alexbudure / queuedash

A stunning, sleek dashboard for Bull, BullMQ, and Bee-Queue

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Initial feedback

bbenezech opened this issue · comments

Hello, I just tried queuedash mounted in my express app.

I see you are probably just getting started, here are my 2 cents:

  • incoming new jobs make the list jump, which is not ideal while scrolling. IMO, when a list is opened, new items should remain hidden until a position: absolute button that says smtg like "10 new jobs added" is clicked.
  • clean all did not work (but removing specific jobs did)
  • missing prioritized section (this is a new one from BullMQ). Prioritized jobs are invisible until they go to active.
  • no job count on section titles. Is it on purpose?
  • incompatibilities with CSP, you load scripts from 3rd party domain https://unpkg.com. You can serve them directly to mitigate. Also the window script hack to check current path does not work with CSP. Accept a nonce or a config time parameter to set it. More and more projects have strict CSPs, all middlewares that serve JS from CDNs do get complains about this unfortunately...
  • lots of npm dependencies, you bring UI related dependencies that are not needed since only compiled files matter to the end-user), you can move them to devDependencies easily I guess.
  • http://localhost:3001/api/bull/dash/trpc/queue.byName?input={"0":{"queueName":"jobQueue"}}&batch=1 (I cleaned the URL encoding) fails with 500 TRPCError: n.queue.client.info is not a function :
[
    {
        "error": {
            "message": "n.queue.client.info is not a function",
            "code": -32603,
            "data": {
                "code": "INTERNAL_SERVER_ERROR",
                "httpStatus": 500,
                "stack": "TRPCError: n.queue.client.info is not a function\n    at /Users/ben/code/XXX/back/node_modules/@queuedash/api/dist/main.js:41:4620\n    at d (/Users/ben/code/XXX/back/node_modules/@queuedash/api/dist/main.js:1:1757)\n    at Object.next (/Users/ben/code/XXX/back/node_modules/@queuedash/api/dist/main.js:1:1040)\n    at c (/Users/ben/code/XXX/back/node_modules/@queuedash/api/dist/main.js:1:619)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)",
                "path": "queue.byName"
            }
        }
    }
]

Not a dealbreaker when you only have one queue, but it does break the top of the UI a bit.
I use redis-cli 7.0.5 with latest BullMQ on latest Express.

Thank you very much Alex for the value you provide for free, I will be happy to help should you need any.

Thanks for the feedback @bbenezech! I've started some of these tweaks in #21

  • no job count on section titles. Is it on purpose?

Are you referring to the sidebar?

  • lots of npm dependencies, you bring UI related dependencies

If you're using this with Express and only installing @queuedash/api, it shouldn't bring in those deps. Will try to move some more things to devDeps though!

  • missing prioritized section

This should be there (#7), must be a bug?

  • incompatibilities with CSP

Think you can help here? Or point me in the right direction? I'd love to serve the JS / css files directly

Hello, I owe you a follow up!

  • missing prioritized section is fixed, I see them now
  • lots of npm dependencies, my bad, I was not only using @queuedash/api, it's all good
  • no job count on tab titles, it's here now, awesome
  • clean all is fixed
  • TRPCError: n.queue.client.info is not a function is fixed, no more overview issue

It's awesome! Thank you very much, it's completely usable now for me and the UI/UX is top-notch!

Suggestion for the future:

  • the initial GET request to / does work perfectly and returns the initial HTML, but for some reason the call also "bubbles up" in my router and ends up in my 404 handler. I'm not an Express expert, it might very well be a skill issue on my side, and not a big deal anyway.
  • the job lists "jumps" on incoming jobs. I guess you can either anchor the scroll or delay new jobs on a user action. IMO this one is the only UX pain in the app.
  • CSP is a simple one. Serve them with express as static files with app.use(express.static("public")). The bothering thing is that you will need to copy the JS/CSS files to your @queuedash/api package public folder in a build step.

Cheers!