# wadesweaponshed/check_point_password_reset architecture

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

- Interactive diagram: https://gitdiagram.com/wadesweaponshed/check_point_password_reset
- Repository: https://github.com/wadesweaponshed/check_point_password_reset

## Overview

Check Point Password Changer is a local operator workbench for changing Gaia user or Expert passwords and recovering Gaia logins across selected managed targets. The principal flow is operator login and target selection, SIC/platform checks, explicit reset confirmation, manager-run scripts with task polling, and per-target outcome review. The server routes browser requests into domain workflows; session management handles manager API access, while the catalog subsystem supplies API command metadata. The README documents the manager-mediated execution model. Some UI wiring and workflow internals were not sampled, so uncertain links are omitted or marked unverified.

Main entry points: [`src/server.js`](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/server.js) (HTTP and static server), [`public/app.js`](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/app.js) (Workbench interaction), [`src/workflows/password-reset.js`](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/password-reset.js) (Target reset workflow), [`src/session-manager.js`](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/session-manager.js) (Session manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Operator workbench"]
  node_browser["Browser UI<br/>[index.html]"]
  node_app["Workbench interaction<br/>[app.js]"]
  node_targets["Target selection"]
  node_workbench["Workbench panels<br/>[workbench.js]"]
  node_results["Result review<br/>[result-view.js]"]
  node_hashui["Hash tools<br/>[password-app.js]"]
  node_hashformat["Hash format checks"]
end

subgraph group_server["Application server"]
  node_server["HTTP and static server<br/>[server.js]"]
end

subgraph group_workflow["Password workflows"]
  node_reset["Target reset workflow<br/>[password-reset.js]"]
  node_platform["Platform detection<br/>[platform.js]"]
  node_lock["Lock recovery<br/>[gaia-lock.js]"]
  node_hashgen["Password hash generation<br/>[password-hash.js]"]
  node_example["Inventory example<br/>[example.js]"]
end

subgraph group_api["Management API"]
  node_session["Session manager<br/>[session-manager.js]"]
  node_client["Check Point client"]
  node_polling["Task polling<br/>[task-polling.js]"]
end

subgraph group_catalog["API catalog"]
  node_catalogmgr["Catalog manager<br/>[catalog-manager.js]"]
  node_catalogdata["Bundled API catalogs"]
end

node_operator(("Administrator"))
node_manager["SMS / MDS / Smart-1"]
node_openssl["OpenSSL"]

node_operator -->|"uses"| node_browser
node_browser -.->|"hosts"| node_app
node_app -->|"requests API"| node_server
node_server -->|"routes login and commands"| node_session
node_server -->|"routes reset actions"| node_reset
node_server -->|"routes hash generation"| node_hashgen
node_server -->|"routes inventory example"| node_example
node_server -->|"serves catalog actions"| node_catalogmgr
node_server -->|"serves UI"| node_browser
node_session -->|"creates API client"| node_client
node_session -->|"polls tasks"| node_polling
node_session -->|"sends management API requests"| node_manager
node_reset -->|"runs target scripts"| node_manager
node_manager -->|"returns task status"| node_polling
node_reset -.->|"checks platform"| node_platform
node_reset -.->|"may recover login lock"| node_lock
node_results -->|"presents outcomes"| node_operator
node_app -.->|"renders job results"| node_results
node_app -.->|"supports target choice"| node_targets
node_hashui -.->|"requests hash generation"| node_server
node_hashgen -->|"generates SHA-512 hashes"| node_openssl
node_catalogmgr -->|"loads bundled catalogs"| node_catalogdata
node_app -->|"requests catalog metadata"| node_catalogmgr

click node_browser "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/index.html"
click node_app "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/app.js"
click node_targets "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/target-selection.js"
click node_workbench "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/workbench.js"
click node_results "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/result-view.js"
click node_hashui "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/password-app.js"
click node_hashformat "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/password-hash-format.js"
click node_server "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/server.js"
click node_session "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/session-manager.js"
click node_client "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/check-point-client.js"
click node_polling "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/task-polling.js"
click node_reset "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/password-reset.js"
click node_platform "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/platform.js"
click node_lock "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/gaia-lock.js"
click node_hashgen "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/password-hash.js"
click node_example "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/example.js"
click node_catalogmgr "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/catalog-manager.js"
click node_catalogdata "https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/data/check-point-api-v2.1.json"

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_browser,node_app,node_targets,node_workbench,node_results,node_hashui,node_hashformat toneBlue
class node_server toneAmber
class node_reset,node_platform,node_lock,node_hashgen,node_example toneMint
class node_session,node_client,node_polling toneRose
class node_catalogmgr,node_catalogdata,node_operator,node_manager,node_openssl toneIndigo
```

## Components

### Operator workbench

- [Browser UI](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/index.html): `public/index.html`
- [Workbench interaction](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/app.js): `public/app.js`
- [Target selection](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/target-selection.js): `public/target-selection.js`
- [Workbench panels](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/workbench.js): `public/workbench.js`
- [Result review](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/result-view.js): `public/result-view.js`
- [Hash tools](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/password-app.js): `public/password-app.js`
- [Hash format checks](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/password-hash-format.js): `public/password-hash-format.js`

### Application server

- [HTTP and static server](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/server.js): `src/server.js`

### Password workflows

- [Target reset workflow](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/password-reset.js): `src/workflows/password-reset.js`
- [Platform detection](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/platform.js): `src/workflows/platform.js`
- [Lock recovery](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/gaia-lock.js): `src/workflows/gaia-lock.js`
- [Password hash generation](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/password-hash.js): `src/workflows/password-hash.js`
- [Inventory example](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/workflows/example.js): `src/workflows/example.js`

### Management API

- [Session manager](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/session-manager.js): `src/session-manager.js`
- [Check Point client](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/check-point-client.js): `src/check-point-client.js`
- [Task polling](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/task-polling.js): `src/task-polling.js`

### API catalog

- [Catalog manager](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/src/catalog-manager.js): `src/catalog-manager.js`
- [Bundled API catalogs](https://github.com/wadesweaponshed/check_point_password_reset/blob/main/public/data/check-point-api-v2.1.json): `public/data/check-point-api-v2.1.json`

### Other components

- **Administrator**
- **SMS / MDS / Smart-1**
- **OpenSSL**

## Connections

- Administrator → Browser UI: uses (evidence: `README.md`)
- Browser UI → Workbench interaction: hosts
- Workbench interaction → HTTP and static server: requests API (evidence: `public/app.js`)
- HTTP and static server → Session manager: routes login and commands (evidence: `src/server.js`)
- HTTP and static server → Target reset workflow: routes reset actions (evidence: `src/server.js`)
- HTTP and static server → Password hash generation: routes hash generation (evidence: `src/server.js`)
- HTTP and static server → Inventory example: routes inventory example (evidence: `src/server.js`)
- HTTP and static server → Catalog manager: serves catalog actions (evidence: `src/server.js`)
- HTTP and static server → Browser UI: serves UI (evidence: `src/server.js`)
- Session manager → Check Point client: creates API client (evidence: `src/session-manager.js`)
- Session manager → Task polling: polls tasks (evidence: `src/session-manager.js`)
- Session manager → SMS / MDS / Smart-1: sends management API requests (evidence: `README.md`)
- Target reset workflow → SMS / MDS / Smart-1: runs target scripts (evidence: `README.md`)
- SMS / MDS / Smart-1 → Task polling: returns task status (evidence: `README.md`)
- Target reset workflow → Platform detection: checks platform
- Target reset workflow → Lock recovery: may recover login lock
- Result review → Administrator: presents outcomes (evidence: `public/result-view.js`)
- Workbench interaction → Result review: renders job results
- Workbench interaction → Target selection: supports target choice
- Hash tools → HTTP and static server: requests hash generation
- Password hash generation → OpenSSL: generates SHA-512 hashes (evidence: `README.md`)
- Catalog manager → Bundled API catalogs: loads bundled catalogs (evidence: `README.md`)
- Workbench interaction → Catalog manager: requests catalog metadata (evidence: `public/app.js`)
