GithubHelp home page GithubHelp logo

clinv's Introduction

WARNING: the program is still in development and not stable even though it's on version 1.x.y. Use at your own risk.*

Clinv

Actions Status Actions Status Coverage Status

DevSecOps command line asset inventory

Help

See documentation for more details.

Installing

pip install clinv

Contributing

For guidance on setting up a development environment, and how to make a contribution to clinv, see Contributing to clinv.

Donations

Donate using
Liberapay or ko-fi

If you are using some of my open-source tools, have enjoyed them, and want to say "thanks", this is a very strong way to do it.

If your product/company depends on these tools, you can sponsor me to ensure I keep happily maintaining them.

If these tools are helping you save money, time, effort, or frustrations; or they are helping you make money, be more productive, efficient, secure, enjoy a bit more your work, or get your product ready faster, this is a great way to show your appreciation. Thanks for that!

And by sponsoring me, you are helping make these tools, that already help you, sustainable and healthy.

License

GPLv3

clinv's People

Contributors

actions-user avatar dependabot-preview[bot] avatar lyz-code avatar millaguie 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

Watchers

 avatar  avatar  avatar  avatar

clinv's Issues

Migrate storage to a TinyDB repository pattern

We use YAML files to store the data. That works when the infrastructure is small, but as we add more resources, the files starts to grow.

It would be interesting to decouple the storage code from the business model. This would mean:

  • Refactor all the code to use the repository pattern.
  • Implement the TinyDB repository.

Create synchronized indicator for Security Group, EC2 and RDS instances

Create a report to monitor that the desired security groups for EC2 and RDS meet the actual ones as well as the security rules in the security groups.

In the security groups is done by at creation copying the rule definitions in the user_data.yaml, assuming that the user is going to review them and accept them as the desired state.

We'll have to add the same info in the EC2 and RDS user data, adopt the sync method from the SecurityGroup class and create a sync report that will output which ones aren't synchronized

Add Elasticache AWS Resource

As there are security groups associated to elasticache resources, the unused report shows those security groups as unused when they are not.

Extract the print method from the resources to a new class

Right now the print method is inside the resource objects. It made sense when developing new resources.

The problem is that as those resources don't have access to the inventory (as they should not), there is no way of using related resources information.

For example, an EC2 instance may have some security groups associated to it. So there is no way to print the security group name instead of the ID.

Another example, If a security group references another in the security rules, there is no way to substitute the referenced id for the name.

Create Prometheus data source

Integrate prometheus information as a data source so we can discover the monitor status of the different resources.

Probably we'll have to attack the prometheus API, and link prometheus resources with clinv ones throught labels in the service monitors

Add Network Interfaces AWS Resource

As there are security groups associated to network interfaces, the unused report shows those security groups as unused when they are not.

Pull Request maintenance only :(

Hi all, right now I'm not using this project and don't have the time to maintain it, I plan to start using it again in the future so I'll probably restore the maintenance mode. This means:

  • I will no longer guarantee that the project is installable with future versions of python not that it works with the latest version of the dependencies (I've disabled the Install and Update CI pipelines).
  • I will not monitor the issues so don't expect any reply from myself.
  • I'll still monitor and answer the pull requests for any contribution.

If you want to see the project thrive please evaluate becoming a maintainer and help me answering issues, pull requests and develop the program.

This announcement is not meant to prevent you from opening issues! Even though I'm not maintaining the project right now, it's always good to do requests. Maybe others in the community can help you :).

If you need to get my attention you can reach me here

Add Active report

Create a report to list only the resources that are in state == active

Add support for Security Groups

Add a Security Group object to the inventory, so as to make sure that:

  • The inventory contains knowledge of the connection between the rest of resources.
  • We create a report that shows unassigned security groups (prone to be removed).
  • We create a report that will show the resources that have changed their security groups.
  • Any new security group should be showed by default in the previous report.

Add Autoscaling Group AWS Resource

As autoscaling groups kill and spawn EC2 instances, when monitoring at EC2 level, false positives in the unassigned report keep on showing.

Create the Autoscaling Group resource so that you assign it to the Services instead of the EC2 instances directly.

Will need to update the unassigned report.

Add Elasticsearch AWS Resource

As there are security groups associated to elasticsearch, the unused report shows those security groups as unused when they are not.

Create Monitored report

Create a report to see which resources are being monitored, which aren't and which don't give enough data to know if they are

Add Load Balancers AWS Resource

As there are security groups associated to load balancers, the unused report shows those security groups as unused when they are not.

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.