
Security News
curl Shuts Down Bug Bounty Program After Flood of AI Slop Reports
A surge of AI-generated vulnerability reports has pushed open source maintainers to rethink bug bounties and tighten security disclosure processes.
pypuppetdb
Advanced tools
This library is a thin wrapper around the REST API providing some convenience functions and objects to request and hold data from PuppetDB.
(For support of the older PuppetDB or Python versions please check previous library version.)
You can install this package from PyPI with:
pip install pypuppetdb
The user guide, API reference and a developer guide is available on Read the Docs.
For bug reports you can file an issue. If you need help with something feel free to pop by #voxpupuli or the #puppetboard on Freenode or Vox Pupuli on Slack.
Please see the contribution guide here.
This project is licensed under the Apache v2.0 License.
All notable changes to this project will be documented in this file.
Merged pull requests:
This is a maintenance release.
The major version is bumped because of:
Thanks to the following contributors of this release: @pgajdos.
BaseAPI._query() when using debug logging.Thanks to Ben Roberts for his contribution!
pql() method
(PR #201,
fixes #167)Node.facts()
(#127)Edge objects
(#202)with statement
(#185)disconnect() method
(#185)New Features
New endpoints:
environments: environments()factsets: factsets()fact-paths: fact_paths()fact-contents: fact_contents()edges: edges()Changes to Types:
pypupperdb.types.Report now requires api to be passed as the
second argument, this allows to directly query for any events that
occurred in this report object. This functionality was proposed and
denied because of backward compatability reasons, since the previous
versions are now removed this is no longer a problem.pypupperdb.types.* accept the v4 API information as optional
parameters. These parameters are primarily environment related but
may include additional information if provided from that endpoint.pypuppetdb.types that run queries
against the PuppetDB now accept and passing additional keyword
arguments to the query.pypuppetdb.BaseAPI functions pass any received keyword
arguments to the pypuppetdb.api.__init__._query() function. This
allows for easy integration with paging functions and parameters.setup.py. The license shouldn't be longer
than 200 characters. We were including the full license tripping up
tools like bdist_rpm.Significant changes have been made in this release. The complete v3 API is now supported except for query pagination.
Most changes are backwards compatible except for a change in the SSL configuration. The previous behaviour was buggy and slightly misleading in the names the options took:
ssl has been renamed to ssl_verify and now defaults to True.ssl_key and ssl_cert are provided.For additional instructions about getting SSL to work see the Quickstart in the documentation.
Deprecation
Support for API v2 will be dropped in the 0.2.x release series.
New features
The following features are only supported for API v3.
The node() and nodes() function have gained the following options:
with_status=Falseunreported=2When with_status is set to True an additional query will be made
using the events-count endpoint scoped to the latest report. This will
result in an additional events and status keys on the node object.
status will be either of changed, unchanged or failed depending
on if events contains successes or failures or none.
By default unreported is set to 2. This is only in effect when
with_status is set to True. It means that if a node hasn't checked
in for two hours it will get a status of unreported instead.
New endpoints:
events-count: events_count()aggregate-event-counts: aggregate_event_counts()server-time: server_time()version: current_version()catalog: catalog()New types:
pypuppetdb.types.Catalogpypuppetdb.types.EdgeChanges to types:
pypuppetdb.types.Node now has:
status defaulting to Noneevents defaulting to Noneunreported_time defaulting to NoneDue to a fairly serious bug 0.0.3 was pulled from PyPi minutes after release.
When a bug was fixed to be able to query for all facts we accidentally
introduced a different bug that caused the facts() call on a node to
query for all facts because we were resetting the query.
node.facts() was causing us to query all facts
because the query to scope our request was being reset.With the introduction of PuppetDB 1.5 a new API version, v3, was also
introduced. In that same release the old /experimental endpoints were
removed, meaning that as of PuppetDB 1.5 with the v2 API you can no
longer get access to reports or events.
In light of this the support for the experimental endpoints has been completely removed from pypuppetdb. As of this release you can only get to reports and/or events through v3 of the API.
This release includes preliminary support for the v3 API. Everything that could be done with v2 plus the experimental endpoints is now possible on v3. However, more advanced funtionality has not yet been implemented. That will be the focus of the next release.
facts() and resources(). We can now
correctly query for all facts or resources.timeout option to connect().connect() method defaults to API v3 now.setup.py preventing successful installation.Initial release. Implements most of the v2 API.
* This Changelog was automatically generated by github_changelog_generator
FAQs
Library for working with the PuppetDB REST API.
We found that pypuppetdb demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A surge of AI-generated vulnerability reports has pushed open source maintainers to rethink bug bounties and tighten security disclosure processes.

Product
Scan results now load faster and remain consistent over time, with stable URLs and on-demand rescans for fresh security data.

Product
Socket's new Alert Details page is designed to surface more context, with a clearer layout, reachability dependency chains, and structured review.