11# Postman PyPNMApps API Collections
22
3- This repository contains Postman collections, environment, and globals for PyPNM API workflows.
3+ This repository contains Postman collections, environment/globals files , and example visualizers for PyPNM API workflows.
44
5- Repository version source of truth:
5+ ## What This Repo Provides
66
7- - ` VERSION ` (must stay in sync with ` pyproject.toml ` )
8-
9- The main collection (` PyPNM ` ) includes requests for:
10-
11- - Single-capture PNM workflows
12- - Multi-capture start/status/results/stop/analysis flows
13- - File manager endpoints
14- - Interface and DOCSIS endpoints
15- - System and health endpoints
7+ - ` postman/collections/PyPNM.postman_collection.json ` (primary collection)
8+ - ` postman/collections/PyPNM-CMTS.postman_collection.json ` (placeholder shell)
9+ - ` postman/environments/PyPNM Remote Server.postman_environment.json `
10+ - ` postman/globals/workspace.postman_globals.json `
11+ - ` visual/ ` example Postman Visualizer templates + sample data
1612
17- Current collection snapshot:
13+ ## Basic Setup
1814
19- - ` PyPNM ` : 60 requests across 21 folders ( ` POST ` , ` GET ` , ` DELETE ` workflows)
20- - ` PyPNM-CMTS ` : placeholder collection shell (currently no requests)
15+ 1 . Install Postman Desktop: ` https://www.postman.com/downloads/ `
16+ 2 . Clone this repository:
2117
22- ## Documentation
18+ ``` bash
19+ git clone https://github.com/PyPNMApps/Postman-PyPNMApps-API.git
20+ cd Postman-PyPNMApps-API
21+ ```
2322
24- User and tooling documentation is available in ` docs/ ` :
23+ 3 . In Postman, import:
24+ - ` postman/collections/PyPNM.postman_collection.json `
25+ - ` postman/collections/PyPNM-CMTS.postman_collection.json `
26+ - ` postman/environments/PyPNM Remote Server.postman_environment.json `
27+ - ` postman/globals/workspace.postman_globals.json `
2528
26- - ` docs/README.md `
27- - ` docs/user-guide.md `
28- - ` docs/tools.md `
29- - ` docs/release.md `
29+ 4 . Set ` pypnm_url ` in Postman Globals (example: ` http://127.0.0.1:8000 ` )
3030
31- ## Local Tools (Sanitize / Version / Release)
31+ Important:
32+ - Collection requests use ` {{pypnm_url}} ` (global), while the provided environment includes ` base_url ` .
3233
33- This repository keeps local tooling under ` tools/ ` to keep the project root lean.
34+ ## Local Tooling (Repo Maintenance)
3435
35- Create a local virtual environment and install tool dependencies:
36+ This repo uses local Python tooling in ` tools/ ` for sanitization, versioning, and release workflows.
3637
3738``` bash
3839./install.sh
@@ -49,176 +50,14 @@ Common commands:
4950./tools/git/git-push.sh --help
5051```
5152
52- ## 1. Download and Install Postman
53-
54- 1 . Go to https://www.postman.com/downloads/
55- 2 . Download the Postman Desktop App for your OS.
56- 3 . Install and open Postman.
57-
58- ## 2. Install Git (Windows and Linux)
59-
60- ### Windows (Git Bash / Git for Windows)
61-
62- 1 . Go to https://git-scm.com/download/win
63- 2 . Download and install ** Git for Windows**
64- 3 . Open ** Git Bash** after installation
65- 4 . Verify installation:
66-
67- ``` bash
68- git --version
69- ```
70-
71- ### Windows (GitHub Desktop, optional)
72-
73- If you prefer a desktop Git client:
74-
75- 1 . Go to https://desktop.github.com/
76- 2 . Download and install ** GitHub Desktop**
77- 3 . Sign in to GitHub (optional, but recommended)
78- 4 . You can clone this repository using the desktop app (steps below)
79-
80- ### Linux
81-
82- Install Git using your distro package manager, then verify:
83-
84- Ubuntu / Debian:
85-
86- ``` bash
87- sudo apt update
88- sudo apt install -y git
89- git --version
90- ```
91-
92- Fedora:
93-
94- ``` bash
95- sudo dnf install -y git
96- git --version
97- ```
98-
99- RHEL / CentOS (older systems may use ` yum ` ):
100-
101- ``` bash
102- sudo yum install -y git
103- git --version
104- ```
105-
106- ## 3. Clone This Repository
107-
108- ### Option A: Git Bash / Linux terminal (recommended)
109-
110- ``` bash
111- git clone https://github.com/PyPNMApps/Postman-PyPNMApps-API.git
112- cd Postman-PyPNMApps-API
113- ```
114-
115- ### Option B: GitHub Desktop
116-
117- 1 . Open GitHub Desktop
118- 2 . Select ` File ` -> ` Clone repository... `
119- 3 . Choose the repository URL:
120-
121- ``` text
122- https://github.com/PyPNMApps/Postman-PyPNMApps-API.git
123- ```
124-
125- 4 . Choose a local folder
126- 5 . Click ` Clone `
127-
128- ## 4. Import Files into Postman
129-
130- In Postman:
131-
132- 1 . Click ` Import ` .
133- 2 . Choose ` Files ` (or drag and drop).
134- 3 . Import the following files:
135-
136- - ` postman/collections/PyPNM.postman_collection.json `
137- - ` postman/collections/PyPNM-CMTS.postman_collection.json `
138- - ` postman/environments/PyPNM Remote Server.postman_environment.json `
139- - ` postman/globals/workspace.postman_globals.json `
140-
141- ## 5. Select Environment and Set Base URL
142-
143- 1 . Select ` PyPNM Remote Server ` in the environment dropdown.
144- 2 . Update ` base_url ` in that environment to your PyPNM server (if needed).
145-
146- Example:
147-
148- ``` text
149- http://127.0.0.1:8000
150- ```
151-
152- Important:
153-
154- - The collection requests currently use ` {{pypnm_url}} ` (a global variable), not ` {{base_url}} ` .
155- - You must set ` pypnm_url ` in Globals (recommended) or update the collection to use ` base_url ` .
156-
157- ## 6. Configure Required Global Variables
158-
159- Open Postman ` Globals ` and populate the values used by requests.
160-
161- Minimum values for most requests:
162-
163- - ` pypnm_url ` (example: ` http://127.0.0.1:8000 ` )
164- - ` cm_ip_address `
165- - ` cm_mac_address `
166- - ` cm_snmp_community_rw ` (or ` snmp_v2_community_rw ` , depending on request)
167-
168- Values commonly required for capture/file workflows:
169-
170- - ` tftp_server_ipv4 `
171- - ` tftp_server_ipv6 `
172- - ` channel_ids `
173- - ` measurement_duration `
174- - ` multi_measurement_duration `
175- - ` op_id ` (for status/results/stop requests)
176- - ` transaction_id `
177- - ` filename `
178- - ` operation_id `
179- - ` mac_address `
180- - ` analysis_min_avg_max `
181-
182- ## 7. Import Validation Checklist (Recommended)
183-
184- After import, verify:
185-
186- 1 . The ` PyPNM ` collection appears in Collections.
187- 2 . The ` PyPNM Remote Server ` environment appears in Environments.
188- 3 . Globals include variables such as ` pypnm_url ` , ` cm_ip_address ` , and ` cm_mac_address ` .
189-
190- ## 8. Run a First Request
191-
192- For a simple connectivity test:
193-
194- 1 . Open ` PyPNM ` collection.
195- 2 . Open ` Health ` -> ` Health ` .
196- 3 . Ensure ` pypnm_url ` is set.
197- 4 . Click ` Send ` .
198-
199- Then try a capture request:
200-
201- 1 . Open ` SingleCapture ` .
202- 2 . Choose a request such as ` Ofdm-RxMER-GetCapture ` .
203- 3 . Fill required globals (` cm_* ` , ` tftp_* ` , etc.).
204- 4 . Click ` Send ` .
205-
206- ## 9. FullBandCapture Visualizer (Postman)
207-
208- The ` SingleCapture -> SpectrumAnalyzer -> File-Upload -> GetCapture-FullBandCapture ` request includes a Postman
209- Visualizer script that renders:
210-
211- - Device details (vendor/model/revisions)
212- - Spectrum chart (raw magnitudes and moving average)
53+ Version source of truth:
54+ - ` VERSION ` (must stay in sync with ` pyproject.toml ` )
21355
214- If the response schema differs or the request fails, the visualizer may not render. Validate the response body first
215- before troubleshooting the chart.
56+ ## Documentation
21657
217- ## Repository Notes
58+ Detailed instructions were moved to ` docs/ ` :
21859
219- - ` postman/collections/PyPNM.postman_collection.json ` is the primary collection.
220- - ` postman/collections/PyPNM-CMTS.postman_collection.json ` currently imports as an empty collection shell (no requests yet).
221- - ` postman/globals/workspace.postman_globals.json ` contains shared placeholders used across requests.
222- - ` postman/scripts/update_operation_ids.py ` is a helper script for collection edits (not required for normal Postman import/use).
223- - Visual example sanitization is handled by ` tools/sanitize.py ` for both ` visual/**/*.json ` and ` visual/**/*.html ` .
224- - Version synchronization is handled by ` tools/support/bump_version.py ` (` VERSION ` + ` pyproject.toml ` ).
60+ - ` docs/README.md ` (docs index)
61+ - ` docs/user-guide.md ` (full Postman import/use walkthrough)
62+ - ` docs/tools.md ` (sanitize/version/release/git helpers)
63+ - ` docs/release.md ` (release process and versioning)
0 commit comments