Giter VIP home page Giter VIP logo

root-me-api's Introduction

Hi 👋, I'm Aurélien 💻 🐧 🏓

Cloud Engineer - DevOps/SRE

Quick Me ⚡

Tech Stack 👨‍💻

Here is my favorite (unordered) tech stack to build stuff, including DevOps, Security automation, Front-End, Back-End, Desktop Dev...

Terraform Ansible Docker Packer Kubernetes Rancher Helm AWS Google Cloud OVH 3DS Outscale Proxmox Grafana Prometheus Elasticsearch Kibana Vault Consul Icinga Github actions Gitlab CI Git Cisco Dell C6100 Go Python Bash JavaScript TypeScript Angular PostgreSQL MongoDB MySQL Electron Jupyter Selenium Pandas Arch Linux Ubuntu WSL

Stay connected 🤝

root-me-api's People

Contributors

bonnetn avatar zteeed avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

cyxo

root-me-api's Issues

[ WORKER ] Refactor structure

--> copy/paste from #16

Je pense qu'on peut améliorer la structure du projet:
Pour l'instant il y a deux modules:

  • redis_interface: qui représente les interactions avec le monde
  • parser: qui parse

Je trouve que le module parser est super car il est totalement self-contained. Il prend des strings et les parse en structures de données que tu veux, il fait son taff et juste sont taff..

Par contre redis_interface fait un peu tout... Genre dans worker/worker/redis_interface/challenges.py, la fonction retrieve_category_info n'a aucun rapport avec Redis, et en plus elle ne fait pas l'interface avec le système et redis mais plutôt entre le système et Rootme. Alors je sais bien que c'est une fonction qui n'est utilisée que dans ce fichier (d'ailleurs les fonctions non exportées devraient être préfixées d'un _), mais ca correspond quand même pas à ce qu'on attend intuitivement d'une "interface vers redis".

Je pense que l'actuel redis_interface peut être split en 3 modules, ça va t'aider à avoir une architecture plus claire, écrire tes tests plus facilement et potentiellement de pouvoir faire des refactoring plus facilement.
redis_interface pourrait devenir:

  • redis_interface: garder le module, mais y mettre QUE des fonctions qui font l'interface entre ton système et redis. (en gros ca serait un adapter, dans le "port and adapter pattern")
  • root_me_interface: Les fonction qui concernent l'interfacage avec rootme, en gros ca serait toujours un appel au HTTP_client + parse et on retourne la valeur. (comme ca ca se teste super simplement)
  • ??? le nom reste à définir (peut être juste worker) qui établit le workflow de ton worker. Genre par exemple, quand on a un ordre d'update, d'abord on uitilise l'interface redis pour récup le timestamp, on check si la resource doit être update, si elle doit être update, on utilise l'interface rootme pour recup les infos, puis on met des données dans redis en utilisant l'interface redis. C'est un exemple de "workflow" qui serait contenu dans ce module

C'est juste une proposition, mais avec ça, juste en lisant la 3ème classe on peut comprendre ce que fait concrètement ton worker, et en lisant les interfaces, on peut comprendre COMMENT il fait

[ BOT ] Error logs

red(f'Error with {user} user --> last chall: {last}\n')

--> error with username not dict

RootMeException

We might want to display something when r.status_code != 200 ??

RootMe_URL

Do not forget to add "rootme_url" field for every endpoints with the url used to make a request on RootMe website as value for this field

[ BOT ] bug on last_challenge_solved

Example
[!] Error with {'id_discord_server': <censored>, 'rootme_username': '<censored>', 'last_challenge_solve': 'PHP - Register globals'} user --> last chall: PHP - Register globals

[ BOT ] !lang

Need to update last_challenge with new language on lang update

--> Trigger errors in cron tasks with alst challenge solve for a user

[ BOT ] reset command

Add a reset command that can only be used by the server owner to clean all the data in database for rootme users

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.