Continuous Documentation Tool - Documentation as Code Tool - This package create reverse diagrams based on your current state in your cloud environment using diagrams library
Project description
Table of Contents
Reverse Diagrams
Continuous Documentation Tool - Documentation as Code Tool
This package create diagrams and help to audit your services from your shell.
Requirement
AWS programmatic access using AWS CLI. Configuring the AWS CLI
Install
pip install reverse-diagrams
Use
The following are the available options
$ reverse_diagrams -h
usage: reverse_diagrams [-h] [-p PROFILE] [-od OUTPUT_DIR_PATH] [-r REGION] [-o] [-i] [-a] [-v] [-d] {watch} ...
Create architecture diagram, inspect and audit your AWS services from your current state.
options:
-h, --help show this help message and exit
-p PROFILE, --profile PROFILE
AWS cli profile for AWS Apis
-od OUTPUT_DIR_PATH, --output_dir_path OUTPUT_DIR_PATH
Name of folder to save the diagrams python code files
-r REGION, --region REGION
AWS region
-o, --graph_organization
Set if you want to create graph for your organization
-i, --graph_identity Set if you want to create graph for your IAM Center
-a, --auto_create Create Automatically diagrams
-v, --version Show version
-d, --debug Debug Mode
Commands:
Command and functionalities
{watch} reverse_diagrams Commands
watch Create pretty console viewexample: reverse_diagrams watch -wi diagrams/json/account_assignments.json
Thanks for using reverse_diagrams!
For example:
reverse_diagrams -p labvel-master -o -i -r us-east-1
❇️ Describe Organization
❇️ Getting Organization Info
❇️ Listing Organizational Units
❇️ Getting the Account list info
ℹ️ There are 11 Accounts in your organization
ℹ️ The accounts are stored in diagrams/json/organizations.json
❇️ Creating diagrams in diagrams/code
❇️ Getting Identity store instance info
❇️ List groups
ℹ️ There are 10 Groups in your Identity Store
❇️ Get groups and Users info
Getting groups members... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:07
Getting account assignments ... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:05:23
Create user and groups assignments ... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
❇️ Getting account assignments, users and groups
ℹ️ The accounts are stored in diagrams/json/account_assignments.json
ℹ️ The accounts are stored in diagrams/json/groups.json
❇️ Creating diagrams in diagrams/code
Then run python3 graph_org.py
to create a png screenshot (organizations-state.png
) for your current state.
Both files are saved into the current directory.
$ reverse_diagrams -p labvel-master -o -r us-east-2
Date: 2022-12-17 22:44:07.623260
❇️ Getting Organization Info
❇️ The Organizational Units list
❇️ Getting the Account list info
Run -> python3 graph_org.py
$ python3 graph_org.py
$ ls
graph_org.py
organizations-state.png
For example:
Now you can edit graph_org.py
file or add to your repositories for keeping the documentation update.
Subcommands
watch
Watch the result in console with a beautiful print style.
reverse_diagrams watch -h
usage: reverse_diagrams watch [-h] [-wo WATCH_GRAPH_ORGANIZATION] [-wi WATCH_GRAPH_IDENTITY] [-wa WATCH_GRAPH_ACCOUNTS_ASSIGNMENTS]
Create view of diagrams in console based on kind of diagram and json file.
options:
-h, --help show this help message and exit
Create view of diagrams in console based on kind of diagram and json file.:
-wo WATCH_GRAPH_ORGANIZATION, --watch_graph_organization WATCH_GRAPH_ORGANIZATION
Set if you want to see graph for your organization structure summary. For example: reverse_diagrams watch watch -wi diagrams/json/organizations.json
-wi WATCH_GRAPH_IDENTITY, --watch_graph_identity WATCH_GRAPH_IDENTITY
Set if you want to see graph for your groups and users. For example: reverse_diagrams watch watch -wi diagrams/json/groups.json
-wa WATCH_GRAPH_ACCOUNTS_ASSIGNMENTS, --watch_graph_accounts_assignments WATCH_GRAPH_ACCOUNTS_ASSIGNMENTS
Set if you want to see graph for your IAM Center- Accounts assignments. For example: reverse_diagrams watch watch -wi
diagrams/json/account_assignments.json.jso
Service supported
AWS Organizations
reverse_diagrams -p my-profile -o -r us-east-2
Identity and Access Manager Center (SSO)
reverse_diagrams -p my-profile -i -r us-east-2
Additional Commands
watch
You can watch the configuration and summary in your shell based on json files generated previously.
Options
$ reverse_diagrams watch -h
usage: reverse_diagrams watch [-h] [-wo WATCH_GRAPH_ORGANIZATION] [-wi WATCH_GRAPH_IDENTITY] [-wa WATCH_GRAPH_ACCOUNTS_ASSIGNMENTS]
Create view of diagrams in console based on kind of diagram and json file.
options:
-h, --help show this help message and exit
Create view of diagrams in console based on kind of diagram and json file.:
-wo WATCH_GRAPH_ORGANIZATION, --watch_graph_organization WATCH_GRAPH_ORGANIZATION
Set if you want to see graph for your organization structure summary. For example: reverse_diagrams watch watch -wo diagrams/json/organizations.json
-wi WATCH_GRAPH_IDENTITY, --watch_graph_identity WATCH_GRAPH_IDENTITY
Set if you want to see graph for your groups and users. For example: reverse_diagrams watch watch -wi diagrams/json/groups.json
-wa WATCH_GRAPH_ACCOUNTS_ASSIGNMENTS, --watch_graph_accounts_assignments WATCH_GRAPH_ACCOUNTS_ASSIGNMENTS
Set if you want to see graph for your IAM Center- Accounts assignments. For example: reverse_diagrams watch watch -wa diagrams/json/account_assignments.json
For example, to watch account assignments:
Combine the options
reverse_diagrams -p my-profile -o -i -r us-east-2
Extras
Enable autocomplete
Argcomplete provides easy, extensible command line tab completion of arguments for your Python application.
It makes two assumptions:
-
You’re using bash or zsh as your shell
-
You’re using argparse to manage your command line arguments/options
Argcomplete is particularly useful if your program has lots of options or subparsers, and if your program can dynamically suggest completions for your argument/option values (for example, if the user is browsing resources over the network). Run:
activate-global-python-argcomplete
and to make sure that bash knows about this script, you use
echo 'eval "$(register-python-argcomplete reverse_diagrams)"' >> ~/.bashrc
source ~/.bashrc
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file reverse_diagrams-1.3.4.tar.gz
.
File metadata
- Download URL: reverse_diagrams-1.3.4.tar.gz
- Upload date:
- Size: 4.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b408bb09a60d6d335ed02f583fb084c9cb40f6f6f4a33388147144c9c238390 |
|
MD5 | b7f14ac89d5aba763ec5b190ab5cc412 |
|
BLAKE2b-256 | 228039692921d3e6d96b192f801a0e40770c3080711075b2bc499fda15ba5d27 |
File details
Details for the file reverse_diagrams-1.3.4-py3-none-any.whl
.
File metadata
- Download URL: reverse_diagrams-1.3.4-py3-none-any.whl
- Upload date:
- Size: 23.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97a21ebd7e6a5695df2a68bdf23e9758cdb27440ac593a0d1f2d747691bf4a4e |
|
MD5 | e985bd08923c4a6edfc404a8c84a006b |
|
BLAKE2b-256 | 15761132779abd295de27e6afb7a79357540c0e51067245a5710ae6701cd911f |