pyTenable Modernization
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 15/100
- Issue type
- Refactor
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- python
- Domain
- api, backend-api-design, testing-qa
Research direction
Start by inventorying the TenableIO, TenableASM, TenableAPA, TenableOne, and Identity packages, then review how Pydantic, Marshmallow, sync/async classes, and pytest-vcr are currently used. Break the modernization into separately testable areas and define completion for package consolidation, validation, returned objects, legacy-code cleanup, and the replacement test suite.
Written by the indexing model from the issue text.
Description
- Collapse the TenableIO, TenableASM, TenableAPA, and TenableOne packages into a single package called TenableCloud.
- Perform stronger validation with both the request and the response using Pydantic models.
- Return the Pydantic objects whenever possible to handle a lot of the data manipulation that folks have to do with the data anyway.
- Build support for both Sync and Async within their own respective classes,
- Perform a lot of code cleanup.
- Marshmallow usage still in the Identity package. This needs to be retired.
- A lot of very legacy code back from when we had to support down to 2.6.
- Refactor a lot of nasty hacks now that more modern approaches can be done (I’m looking at you editor API).
- Replace the old (and frail) pytest-vcr testing suite with a new one that allows us to better mock and test some of the endpoints that couldn’t be recorded.
- Dominant language
- Python
- Stars
- 417
- Forks
- 190
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 7
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from tenable/pyTenable
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
-
Bug: exports.vulns() and exports.was() still send the vpr_v2_score filter, which the API removed on 2026-10-01Possibly taken @lanz claimed this 8 days ago. Open
Difficulty 3/5 1-2 days Newbie friendliness 35/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
All issues in tenable/pyTenable
Similar issues
-
request-theme
Difficulty 1/5 Under an hour Newbie friendliness 78/100
LizardByte/ThemerrDB#9883 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Project-MONAI/MONAI#9258 ·
Maintainers usually reply within 3 days
-
catalog:deprecation
Difficulty 1/5 Under an hour Newbie friendliness 88/100
surendranb/free-inference#31 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
fritzprix/libr-agent#2612 ·
Maintainers usually reply within 1 day
-
needs-triage presubmit-gate
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
gke-labs/kube-agents#5001 ·
Maintainers usually reply within 1 day