Code Monkey home page Code Monkey logo

sqs-admin's Introduction

SQS-Admin

Contributors Docker Pulls

A minimal and lightweight UI for managing SQS-Queues for local development e.g. with Localstack.

Sqs-Admin

Why

There are already good UIs for SQS, but they are heavy with sizes >100 MB. Most likely because they ship with SQS itself. If you choose e.g. Localstack for local development you don't need an additional local SQS setup, as it is already provided by Localstack, unfortunately without UI. This Alpine based image has a size ~19 MB. You can easily manage and create Queues.

Usage

The most common way to use SQS-Admin would be in conjunction with a docker-compose.yml. A working example can be found in the example directory.

You probably need to have a SQS up and running somewhere to connect to, e.g. via Localstack. To start SQS-Admin simply run: docker run --rm -p 3999:3999 -e SQS_ENDPOINT_URL=<Endpoint-URL-of-our-SQS> -d pacovk/sqs-admin

Compatibility

SQS-Admin >= 0.5.4 does not support Localstack < 2.x. If you need to stick to Localstack 1.x, please use SQS-Admin <= 0.5.3 (see #928) Localstack >= 3.5.0 is currently not supported, due to breaking changes.

Configuration

You can easily configure the Docker Container via the following environment variables:

ENV Description Default
SQS_ENDPOINT_URL Endpoint where SQS is running, this one is mostly required http://localhost:4566
SQS_AWS_REGION AWS region the client internally uses to interact with SQS eu-central-1

Contributing

If you want to contribute to this project, please read the contribution guidelines.

Development

Run local environment

To start your local development environment you can run make dev. This will start a local backend (default http://localhost:3999) and the UI (default http://localhost:3000).

To configure the backend for local development you can set the following environment variable:

ENV Description Default
HTTP_PORT Port that the internal backend binds to and is serving 3999

Run tests

To run the tests you can run make test. You'll need to shut down your local development environment afterward.

Shutdown local environment

To shutdown your local development environment you can run make down.

Designed and tested with

Localstack

Contributors ✨

Thanks go to these wonderful people (emoji key):

PacoVK
PacoVK

💻 👀 📆 🚧 💡
Érico Knapp Lutzer
Érico Knapp Lutzer

💻
Stanislav Zhuk
Stanislav Zhuk

💻
Alejandro Perez
Alejandro Perez

💻
Ádám Bordás
Ádám Bordás

🐛
Bhavishya Chandra Kamineni
Bhavishya Chandra Kamineni

💻

Legal note

UI favicon by John Sorrentino

sqs-admin's People

Contributors

allcontributors[bot] avatar bhavishyachandra avatar dependabot[bot] avatar klutzer avatar pacovk avatar renovate[bot] avatar stasadev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

sqs-admin's Issues

SQS_AWS_REGION is ignored

Hi,
It looks like a recent update broke the ability to configure the AWS region where the environment variable SQS_AWS_REGION is ignored. I pulled the latest contain and it defaults to eu-central-1 ignoring what i have set in the docker compose file.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

docker-compose
example/docker-compose.yml
server/docker-compose.yml
dockerfile
Dockerfile
  • node 20-alpine
github-actions
.github/workflows/build.yml
  • actions/checkout v4
  • docker/metadata-action v5
  • docker/setup-qemu-action v3
  • docker/setup-buildx-action v3
  • docker/login-action v3
  • docker/build-push-action v6
.github/workflows/frontend.test.yml
  • actions/checkout v4
.github/workflows/server.test.yml
  • actions/checkout v4
gomod
server/go.mod
  • go 1.19
  • github.com/aws/aws-sdk-go-v2 v1.30.3
  • github.com/aws/aws-sdk-go-v2/config v1.27.27
  • github.com/aws/aws-sdk-go-v2/credentials v1.17.27
  • github.com/aws/aws-sdk-go-v2/service/sqs v1.34.3
  • github.com/google/uuid v1.6.0
  • github.com/gorilla/handlers v1.5.2
  • github.com/gorilla/mux v1.8.1
npm
package.json
  • @emotion/react ^11.11.1
  • @emotion/styled ^11.11.0
  • @mui/icons-material ^5.14.19
  • @mui/material ^5.14.19
  • react ^18.2.0
  • react-dom ^18.2.0
  • react-json-tree ^0.18.0
  • @testing-library/jest-dom ^6.1.5
  • @testing-library/react ^15.0.0
  • @testing-library/user-event ^14.5.1
  • @types/jest ^29.5.10
  • @types/node ^20.10.1
  • @types/react ^18.2.39
  • @types/react-dom ^18.2.17
  • chokidar ^3.5.3
  • esbuild ^0.23.0
  • live-server ^1.2.2
  • prettier 3.3.3
  • react-scripts 5.0.1
  • ts-jest ^29.1.1
  • typescript ^5.3.2

  • Check this box to trigger a request for Renovate to run again on this repository

create a localstack extension for sqs-admin

Hey there, love the project!

Have you considered packaging sqs-admin as a LocalStack extension? They are a way to hook in third-party software that starts as part of LocalStack. Basically you could run the sqs-admin UI inside the LocalStack container and expose it through something like http://sqs-admin.localhost.localstack.cloud:4566.

Here's an example of what a web UI-based LocalStack extension looks like: https://github.com/thrau/localstack-aws-log-viewer

Extensions are part of the localstack pro edition, but we have hobby plan licenses that are free for non-commercial use of LocalStack which can be used for developing this. I'd be happy to help with this!

Why the UI only shows 10 messages

Hey, I have sent more than 10 messages in the queue. However, the admin UI only shows 10 messages. I would like to continue seeing the message on the UI. Is this a missing feature? Or am I not configuring correctly? Thanks.

metadata feature request

when sending a message in the UI there is no option to introduce metadata (message attributes) would be nice to support it.

Break on migrate from v0.5.3 to v0.5.4+

I'm facing the following issue when trying to update sqs-admin version from 0.5.3 to 0.5.4 and above:

2024/03/21 20:14:21 Got an error retrieving queue URLs: operation error SQS: ListQueues, exceeded maximum number of attempts, 3, https response error StatusCode: 500, RequestID: , deserialization failed, failed to decode response body, invalid character '<' looking for beginning of value

And with that, no queue is shown in the UI. The fix is just to downgrade to version 0.5.3 without changing anything else. I'm using localstack 1.3.1.

Display current region on the Homepage

I was confused for a while just like #859 before I realized I was looking at queues in the wrong region. It might be helpful to show the current region for on the page to prevent it, as am sure a lot of people like me manage the same account in different regions. I can make the change and open a PR if you accept contributions. Thanks for the simple tool, works great with localstack.

Send messages to a FIFO queue

Hello!

It'd be great if you allow sending messages to a FIFO queue, which requires the "MessageGroupId" parameter as mandatory in such cases.

BTW thanks for the repo

Use the javascript AWS Client instead of Go server

Using the package directly in the app could significantly improve the developer experience and, of course, reduce the code to maintain. I was doing some tests, and it can work, but the counterpoint is that Localstack needs to allow localhost URLs in the CORS settings (You can do it with an environment variable).
This change could open the door to porting the app to Electron.

What do you think? Could It be a good idea?

Improve development setup

To ease development setup the following is required:
[] Makefile with dev commands (start UI and server and start required environment dependencies)
[] improve docs

500 with parse error

I seemt o be getting a 500 eror with parsing while getting messages. Looks like create queue works fine but it just can't list the queues.

sqs-admin  | 2024/04/07 16:50:14 Got an error retrieving queue URLs: operation error SQS: ListQueues, exceeded maximum number of attempts, 3, https response error StatusCode: 500, RequestID: , deserialization failed, failed to decode response body, invalid character '<' looking for beginning of value

this is what I get when I run aws cli to list-queues

{
    "QueueUrls": [
        "http://169.254.170.9:4566/000000000000/PriceQueue.fifo",
        "http://169.254.170.9:4566/000000000000/PercentCalculateQueue",
        "http://169.254.170.9:4566/000000000000/PopularityQueue",
        "http://169.254.170.9:4566/000000000000/NewUserCreated"
    ]
}

Connect do AWS SQS endpoint

Hi, I'm tryng to connect directly to AWS SQS endpoint,:

      - name: SQS_AWS_REGION
        value: "sa-east-1"  
      - name: SQS_ENDPOINT_URL
        value: "https://sqs.myregion.amazonaws.com"  
      - name: ACCESS_KEY
        value: "myaccesskey"   
      - name: SECRET_KEY
        value: "mysecretkey"

But i'm facing the error bellow

2024/04/25 11:03:10 Got an error retrieving queue URLs: operation error SQS: ListQueues, https response error StatusCode: 403, RequestID: 7e55994b-985d-5480-b26c-c7efa2f3a7f7, api error InvalidClientTokenId: The security token included in the request is invalid.

Is there a way to connect to AWS instead localstack?

UI doesn't support a large list of queues

Hello man!

Thanks again for the PR before.

Another thing I've noticed is when we work with a number of queues greater than 3: The tab list isn't filled up. I think we could probably use cards or even a list/table similar to elasticmq interface, wdyt?

image

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.