# tpbosolo/cybersecurity-tools architecture

> Architecture diagram of the GitHub repository tpbosolo/cybersecurity-tools, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tpbosolo/cybersecurity-tools
- Repository: https://github.com/tpbosolo/cybersecurity-tools

## Overview

Handy Scripts is a collection of three independent cybersecurity command-line utilities: decode Active Directory userAccountControl values, parse domain names using the Public Suffix List, and generate random strings. Users invoke each script directly and receive printed results. The domain parser may download and cache the suffix list before parsing. The source excerpts show these runtime paths; the graph does not assume interactions between the utilities.

Main entry points: [`scripts/domain_parser.py`](https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/domain_parser.py) (Domain parser), [`scripts/uac_decimal_to_string.py`](https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/uac_decimal_to_string.py) (UAC command), [`scripts/random_string.py`](https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/random_string.py) (Random command)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_uac["UAC Checker"]
  node_uac_cli["UAC command"]
  node_uac_decode["Flag decoder"]
end

subgraph group_domain["Domain Parser"]
  node_domain_cli["Domain command<br/>[domain_parser.py]"]
  node_domain_parse["Domain parser<br/>[domain_parser.py]"]
  node_suffix_cache[("Suffix cache<br/>[domain_parser.py]")]
  node_psl["Public Suffix List"]
end

subgraph group_random["Random Generator"]
  node_random_cli["Random command<br/>[random_string.py]"]
  node_random_gen["String generator<br/>[random_string.py]"]
end

node_user(("CLI user"))

node_user -->|"runs"| node_uac_cli
node_uac_cli -->|"decodes flags"| node_uac_decode
node_user -->|"runs"| node_domain_cli
node_domain_cli -->|"parses domains"| node_domain_parse
node_domain_parse -->|"reads or writes"| node_suffix_cache
node_domain_parse -->|"downloads list"| node_psl
node_user -->|"runs"| node_random_cli
node_random_cli -->|"generates string"| node_random_gen

click node_uac_cli "https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/uac_decimal_to_string.py"
click node_uac_decode "https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/uac_decimal_to_string.py"
click node_domain_cli "https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/domain_parser.py"
click node_domain_parse "https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/domain_parser.py"
click node_suffix_cache "https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/domain_parser.py"
click node_random_cli "https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/random_string.py"
click node_random_gen "https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/random_string.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_uac_cli,node_uac_decode,node_user toneBlue
class node_domain_cli,node_domain_parse,node_suffix_cache,node_psl toneAmber
class node_random_cli,node_random_gen toneMint
```

## Components

### UAC Checker

- [UAC command](https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/uac_decimal_to_string.py): `scripts/uac_decimal_to_string.py`
- [Flag decoder](https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/uac_decimal_to_string.py): `scripts/uac_decimal_to_string.py`

### Domain Parser

- [Domain command](https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/domain_parser.py): `scripts/domain_parser.py`
- [Domain parser](https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/domain_parser.py): `scripts/domain_parser.py`
- [Suffix cache](https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/domain_parser.py): `scripts/domain_parser.py`
- **Public Suffix List**

### Random Generator

- [Random command](https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/random_string.py): `scripts/random_string.py`
- [String generator](https://github.com/tpbosolo/cybersecurity-tools/blob/main/scripts/random_string.py): `scripts/random_string.py`

### Other components

- **CLI user**

## Connections

- CLI user → UAC command: runs (evidence: `README.md`)
- UAC command → Flag decoder: decodes flags (evidence: `scripts/uac_decimal_to_string.py`)
- CLI user → Domain command: runs (evidence: `README.md`)
- Domain command → Domain parser: parses domains (evidence: `scripts/domain_parser.py`)
- Domain parser → Suffix cache: reads or writes (evidence: `scripts/domain_parser.py`)
- Domain parser → Public Suffix List: downloads list (evidence: `scripts/domain_parser.py`)
- CLI user → Random command: runs (evidence: `README.md`)
- Random command → String generator: generates string (evidence: `scripts/random_string.py`)
