Giter VIP home page Giter VIP logo

rainbow's Introduction

All Contributors

Coverage LinuxUnitTest reviewdog Gosec Go Report Card

rainbow

Important

This project is under development. Do not use it in production environments.

The rainbow project is a toolset for managing AWS resources. This project consists of multiple CLI and CloudFormation templates. I plan to implement TUI mode (Interactive mode) for all CLI commands.

This project adopts README-Driven Development. Therefore, while there may be a README, there might not be any code yet. If you have any feedback regarding the README, please write down in the Issues.

Supported OS & Go version

  • Linux
  • Go 1.19 or later

I plan to support Mac. Until certain features are added, it has been excluded from the scope of unit testing.

Windows is not supported because the tools used in unit testing do not run in a Windows environment. However, it is expected that some features will function in a Windows environment to some extent.

CLI List

Name README implementation Description
s3hub βœ… 100% User-friendly s3 management tool
spare βœ… 50% Single Page Application Release Easily
cfn βœ… 10% List up or delete CloudFormation stacks

s3hub example

The s3hub command provides following features:

  • Create a S3 bucket
  • List S3 buckets
  • List S3 objects in the S3 bucket
  • Copy files to S3 bucket
  • Delete contents from the S3 bucket
  • Delete the S3 bucket
  • Interactive mode

interactive_mode

spare example

The 'spare' command makes easily the release of Single Page Applications. Spare constructs the infrastructure on AWS to operate the SPA, and then deploys the SPA (please note that it does not support building the SPA). Developers can inspect the infrastructure as CloudFormation before or after its construction.

The infrastructure for S3 and CloudFront is configured as shown in the diagram when you run the "spare build" command.

diagram

Warning

The spare command is deleted from the repository. At the very least, the development priority is low.

cfn example

The cfn command provides the following features:

  • List stacks
  • Delete stacks (Not implemented yet)

cfn_tui

CloudFormation Template List

Name README implementation
Lambda batch with EventBridge (CloudWatch Events) βœ… 100%
Lambda with API Gateway βœ… 100%
Daily Cost Notification βœ… 100%
CloudWatch Real User Monitoring (RUM) βœ… 100%
Static Web Application Distribution βœ… 100%

LICENSE

This project is licensed under the terms of the MIT license. See the LICENSE file.

Contributing

Contributions are welcome! Please see the following documents for details:

This project incurs costs on AWS, and financial support from you would make it easier to maintain the project. If you wish to provide financial support, please do so through GitHub Sponsors

GitHub Star History

GitHub Star is motivation for me. If you like this project, please star it. Star History Chart

Unit Test Coverage Treemap

Coverage Treemap

Special Thanks

localstack LocalStack is a service that mocks AWS, covering a wide range of AWS services. It is not easy to set up an AWS infrastructure for personal development, but LocalStack has lowered the barrier for server application development.

It has been incredibly helpful for my technical learning, and among the open-source software (OSS) I encountered in 2023, LocalStack is undoubtedly the best tool. I would like to take this opportunity to express my gratitude.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

CHIKAMATSU Naohiro
CHIKAMATSU Naohiro

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!

rainbow's People

Contributors

dependabot[bot] avatar nao1215 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

riffus avary

rainbow's Issues

[BUG Report] Can not delete S3 Bucket

About the problem

$ s3hub
[Error]
  operation error S3: ListObjectsV2, https response error StatusCode: 301, Request
  ID: 01E4FF22WWZTSGVH, HostID: BnJzE2eN0UbxZ+U+JrsucYElT0pzF5vZCDqR3xD+KmYOsD2E3b
  1lcv5RliTghnTs74mwjchxYeU=, api error PermanentRedirect: The bucket you are atte
  mpting to access must be addressed using the specified endpoint. Please send all
   future requests to this endpoint.

Expected behavior

Delete s3 bucket.

Steps to reproduce

$ cd cloudformation/api-gateway-with-lambda
$ make deploy
$ s3hub
  β€» Delete S3 bucket by interactive mode

[BUG Report] Deletion of the S3 bucket fails because there are still S3 objects remaining.

About the problem

When the s3hub command deletes an S3 bucket, the deletion of the S3 bucket fails because there are still S3 objects remaining.

$ s3hub rm abcdef-test-dev
CHECK: delete abcdef-test-dev with objects? [Y/n] Y
 100% |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| (7/7, 129 it/s)        
delete 7 objects in pogo-test-dev
operation error S3: DeleteBucket, https response error StatusCode: 409, RequestID: MZ5QP0YRHY4C1GJW, HostID: XxZm4SSyKXDdet528dYQoTmETab8Bb+YL/E0MJx2Oy5qf8AQywZ567nnGgZS1VHzfKRt7DH7Qm4=, api error BucketNotEmpty: The bucket you tried to delete is not empty

Expected behavior

s3hub delete s3 bucket with s3 objects.

Steps to reproduce

  1. Create S3 Bucket below setteing:
  S3Bucket:
    Type: "AWS::S3::Bucket"
    DeletionPolicy: Retain
    UpdateReplacePolicy: Retain
    Properties:
      BucketName: "sample-ucket-name"
      VersioningConfiguration:
        Status: Enabled
      LifecycleConfiguration:
        Rules:
          - Id: NoncurrentVersionExpiration
            Status: Enabled
            NoncurrentVersionExpirationInDays: 45
      PublicAccessBlockConfiguration:
        BlockPublicAcls: true
        BlockPublicPolicy: true
        IgnorePublicAcls: true
        RestrictPublicBuckets: true

Environment

  • OS: macOS 13.6.3 22G436 arm64
  • Command Name & Version: s3hub v0.0.0-20240129222627-9f1107059334 (under MIT LICENSE)

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.