{"id":19499685,"url":"https://github.com/apsl/rasengan","last_synced_at":"2025-04-25T22:34:19.657Z","repository":{"id":57460084,"uuid":"115378922","full_name":"APSL/rasengan","owner":"APSL","description":"Rasengan is a command-line tool for automated testing of multiple kind of integrations tests for domains, with  a simple and flexible YAML definition syntax.","archived":false,"fork":false,"pushed_at":"2018-05-11T15:26:50.000Z","size":59,"stargazers_count":13,"open_issues_count":2,"forks_count":1,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-04T00:51:36.392Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/APSL.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-26T02:46:07.000Z","updated_at":"2024-01-26T13:59:13.000Z","dependencies_parsed_at":"2022-08-28T16:11:06.513Z","dependency_job_id":null,"html_url":"https://github.com/APSL/rasengan","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APSL%2Frasengan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APSL%2Frasengan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APSL%2Frasengan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/APSL%2Frasengan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/APSL","download_url":"https://codeload.github.com/APSL/rasengan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224019605,"owners_count":17242177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T22:05:48.501Z","updated_at":"2024-11-10T22:05:49.764Z","avatar_url":"https://github.com/APSL.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Rasengan\n=========\n\n.. image:: https://img.shields.io/pypi/v/rasengan.svg\n    :target: https://pypi.python.org/pypi/rasengan/\n\n.. image:: https://travis-ci.org/APSL/rasengan.svg?branch=master\n    :target: https://travis-ci.org/APSL/rasengan\n\n.. image:: https://img.shields.io/docker/pulls/apsl/rasengan.svg?branch=master\n    :target: https://hub.docker.com/r/apsl/rasengan/\n\n.. image:: https://img.shields.io/docker/stars/apsl/rasengan.svg?branch=master\n    :target: https://hub.docker.com/r/apsl/rasengan/\n\nOverview\n--------\n\n``rasengan``, is a command-line tool for automated testing of multiple\nkind of integrations tests for domains, with a simple and flexible YAML\ndefinition syntax. The yaml file can contain multiple domains and we\ncould check it in a diferent ways: \n\n  - Check the DNS resolution\n  - Check redirects, status code and expected URL in the redirect\n  - Check http requests and the content text\n  - Check http using different user-agents\n  - Check SSL expiration date\n  - Check SSL Qualys grade\n\nThe exit of the execution is an error if any of the checks fails. You\ncan use a mrpe parameter to get MRPE simple and resume output.\n\nInstall \u0026 configure\n-------------------\n\n``rasengan`` is developed and tested with a python 3 version. We require\n\u003e3.4 to install it.\n\nTo install ``rasengan`` we can use the PyPI package:\n\n::\n\n    pip install rasengan\n\nYou can use the publish docker image without need to install the python environment.\nYou have to share the directory where rasengan.yml is like a volume:\n\n::\n\n    docker run -v $PWD:/rasengan apsl/rasengan:0.2.6\n\nWe don't provide a 'latest' tag so you have to use always a version tag for the docker image.\n\nrasengan.yml\n------------\n\nAt this file you can specify the different for a domain:\n\n+------------+-----------------------------------------------------------------------+\n| Field      | Description                                                           |\n+============+=======================================================================+\n| ``dns``    | Check the DNS resolution, expect domain\\_type and result              |\n+------------+-----------------------------------------------------------------------+\n| ``ssl``    | Check the SSL status of the domain qualys test and expire date        |\n+------------+-----------------------------------------------------------------------+\n| ``http``   | Request the domain from http, expect status\\_code, redirect or text   |\n+------------+-----------------------------------------------------------------------+\n\nOptions in plugins\n------------------\n\n-  **dns**:\n\n   -  *domain\\_type*: CNAME, A or another type of expected resolution in\n      the domain.\n   -  *expected*: list of IPs or domains expected in the result.\n\n-  **ssl**:\n\n   -  *grade*: Qualys test expected grade.\n   -  *days\\_to\\_expire*: expiration days limit warning in the https\n      certificate for the domain.\n\n-  **http**:\n\n   -  *status\\_code*: 200, 301, 302, 404, etc. Status code in the http\n      request.\n   -  *protocol*: http or https, do the request over different http\n      protocol. Default https.\n   -  *redirect*: expected redirect URL when you configure status code\n      in 301 or 302.\n   -  *path*: The url path to check in the domain. Default is '/'.\n   -  *text*: check text in the result page when you expect 200 code.\n   -  *user\\_agent*: use a custom user\\_agent for the request or stored\n      one from keys: mobile, desktop, google\\_desktop, google\\_mobile.\n   -  *auth\\_user*: username in http auth.\n   -  *auth\\_password*: password in http auth .\nUsage\n-----\n\n::\n\n    $ rasengan --help\n    Usage: rasengan [OPTIONS]\n\n      Check all the domains in the file\n\n    Options:\n      -c, --config TEXT      Name of file to check. Default rasengan.yml\n      -d, --domains TEXT     Check only this list of domain (comma separated)\n      -l, --loglevel TEXT    Log level. Default INFO\n      -w, --workers INTEGER  Number of threads to make the requests. Default 20.\n      --mrpe / --no-mrpe     MRPE output (disable logging options). Default False, and if True disable loglevel.\n      --help                 Show this message and exit.\n\nBasic Example\n-------------\n\n::\n\n    version: 0.2.6\n    domains:\n      www.apsl.net:\n        ssl:\n          grade: F\n          days_to_expire: 10\n        dns:\n          domain_type: CNAME\n          expected: \n            - apsl.net.\n        http:\n          main: \n            status_code: 301\n            protocol: http\n            redirect: https://www.apsl.net/\n          main_https:\n            status_code: 200\n            text: Expertos en desarrollos web\n          mobile:\n            status_code: 200\n            user_agent: mobile\n            text: Expertos en desarrollos web           \n      apsl.net:\n        dns:\n          domain_type: A\n          expected: \n            - 148.251.84.231\n        http:\n          main_redirect:        \n            protocol: http\n            status_code: 301\n            redirect: https://www.apsl.net/\n          https_redirect:\n            protocol: https\n            status_code: 301\n            redirect: https://www.apsl.net/\n\nUsage example\n-------------\n\n::\n\n    $ rasengan -c rasengan.yml \n    2017-12-26 03:38:01,250 INFO     www.apsl.net - DNS Check - OK -\u003e result: ['apsl.net.']\n    2017-12-26 03:38:01,309 INFO     apsl.net - DNS Check - OK -\u003e result: ['148.251.84.231']\n    2017-12-26 03:38:01,722 INFO     www.apsl.net - [desktop] - Status Code for http://www.apsl.net/ - OK -\u003e result: 301\n    2017-12-26 03:38:01,722 INFO     apsl.net - [desktop] - Status Code for http://apsl.net/ - OK -\u003e result: 301\n    2017-12-26 03:38:01,723 INFO     www.apsl.net - [desktop] - Redirect Location for http://www.apsl.net/ - OK -\u003e result: https://www.apsl.net/                                \n    2017-12-26 03:38:01,723 INFO     apsl.net - [desktop] - Redirect Location for http://apsl.net/ - OK -\u003e result: https://www.apsl.net/\n    2017-12-26 03:38:01,820 INFO     www.apsl.net - SSL Expires at 2018-01-17 23:59:59\n    2017-12-26 03:38:01,936 INFO     www.apsl.net - [desktop] - Status Code for https://www.apsl.net/ - OK -\u003e result: 200\n    2017-12-26 03:38:01,938 INFO     www.apsl.net - [desktop] - Page content for https://www.apsl.net/ - OK -\u003e Exists the phrase: Expertos en desarrollos web\n    2017-12-26 03:38:01,958 INFO     apsl.net - [desktop] - Status Code for https://apsl.net/ - OK -\u003e result: 301\n    2017-12-26 03:38:01,960 INFO     www.apsl.net - [mobile] - Status Code for https://www.apsl.net/ - OK -\u003e result: 200\n    2017-12-26 03:38:01,960 INFO     apsl.net - [desktop] - Redirect Location for https://apsl.net/ - OK -\u003e result: https://www.apsl.net/\n    2017-12-26 03:38:01,962 INFO     www.apsl.net - [mobile] - Page content for https://www.apsl.net/ - OK -\u003e Exists the phrase: Expertos en desarrollos web\n    2017-12-26 03:38:03,353 INFO     www.apsl.net - SSL Qualys grade - OK -\u003e result: F\n\n    (rasengan) $ echo $?\n    0\n\n    (rasengan) $ rasengan -c rasengan.yml --mrpe\n    Checks OK: 11 -- \n\nFuture work\n-----------\n\n::\n\n    - Integrate tavern to check APIs\n    - Check http response time\n    - Manage and show exceptions ocurred in Future threads\n\nAcknowledgements\n----------------\n\n``rasengan`` makes use of several open-source projects:\n\n-  `click \u003chttp://click.pocoo.org/5/\u003e`__, for manage the command-line\n   options.\n-  `requests \u003chttp://docs.python-requests.org/en/master/\u003e`__, for HTTP\n   requests.\n-  `pyyaml \u003chttps://github.com/yaml/pyyaml\u003e`__, for the manage the data\n   syntax.\n-  `colorlog \u003chttps://github.com/borntyping/python-colorlog\u003e`__, for\n   formatting terminal outputs.\n-  `dnspython \u003chttp://www.dnspython.org/\u003e`__, for manage the DNS\n   queries.\n-  `pyOpenSSL \u003chttps://pypi.python.org/pypi/pyOpenSSL\u003e`__, for manage\n   the ssl expiration checks.\n-  `SSL Qualys API \u003chttps://www.ssllabs.com/projects/ssllabs-apis/\u003e`__,\n   for check the grade of security in SSL.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapsl%2Frasengan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapsl%2Frasengan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapsl%2Frasengan/lists"}