StreamSets SDK for Python 6.6: More power, more control and more collaboration

20 June 2025

Author

John Wen

Product Manager

StreamSets SDK for Python 6.6 is packed with powerful new features that make it easier than ever for users to programmatically build, secure and manage their data integration pipelines at scale.

With this release, we are bringing 3 major capabilities to the SDK: acceptable values lookup, projects support and network access rules. Whether you are building pipelines from scratch, scaling StreamSets across teams or securing access by IP, 6.6 gives you the tools you need all in code.

Using the new acceptable values method

Building pipelines through the SDK just got easier. Until now, users scripting pipeline definitions in Python had to reference the UI or documentation to determine which values were valid for certain stage configurations, especially when drop downs in the UI were the only source of truth.

With the new acceptable values method, the SDK lets you programmatically query all valid values for a given configuration field. This makes building dynamic pipelines and integrating StreamSets into custom tooling more reliable, testable and faster.

No more trial and error. Just valid configs, every time.

In the UI it is made obvious what the configurations options are for each field.

With the SDK we can now query what the acceptable values are for each stage:

Example: Querying Acceptable Values

# Get stage name from existing stage via SDK...
pipeline = sch.pipelines.get(name="SDK 6.6.0 Demo")
stage = pipeline.stages.get(label="Dev Raw Data Source 1")
stage_name = stage.stage_name
# >> 'com_streamsets_pipeline_stage_devtest_rawdata_RawDataDSource'

# ... or get it from UI
stage_name_ui = "Dev Raw Data Source 1"

# Get pipeline_builder object
engine = sch.engines.get(id="d94f73b9-6e96-4545-bcbb-9e940c64bf84")
pipeline_builder = sch.get_pipeline_builder(engine_type='data_collector', engine_id=engine.id)

# Get options
pipeline_builder.get_stage_configuration_options(config_name="JSON Content", stage_name=stage_name_ui)
# Returned options >>
[ChooseOption(UI_VALUE='JSON array of objects', SDK_VALUE='ARRAY_OBJECTS'), ChooseOption(UI_VALUE='Multiple JSON objects', SDK_VALUE='MULTIPLE_OBJECTS')]

Projects Support: Bring order to StreamSets universe

Managing multi-team development in a shared environment used to be a challenge.  Without isolation, collaboration could quickly turn into chaos.

With the introduction of  projects in the SDK, you can now programmatically create, organize, and manage Projects, StreamSets' built-in collaborative workspaces without needing to use the UI. Each project provides a clean boundary for your team’s pipelines, connections, jobs, and assets. Projects turn StreamSets into a multi-tenant, enterprise-ready platform. Customers gain clarity, security, and scalability without needing to deploy multiple instances.

One instance. Many teams. Zero friction.

Example: Managing Projects

# Create a new project
project_builder = sch.get_project_builder()
project = project_builder.build(name='Marketing Campaign Attribution', description='Ingest ad impressions and clickstream data from multiple sources')
sch.add_project(project)

# Switch to the project
sch.current_project = project

# Add a user and group to the project
project.add_user(‘John’)
project.add_group(‘Product Management’)

# Update project details
project.name = 'New Marketing Campaign'
sch.update_project(project)

# Delete the project
sch.delete_project(project)

Network Access Rules: Secure by design

Security should never be a UI-only operation.

StreamSets SDK for Python 6.6 introduces full network access rules management, giving you API-level access to define and edit the set of IPs allowed to authenticate with your StreamSets environment.

Whether you're automating onboarding, deploying StreamSets across hybrid clouds, or enforcing network policies, the SDK now empowers you to manage security with the same discipline as the rest of your infrastructure.

Define. Enforce. Automate. All through code.

SDK example: Managing network access rules

# Selecting a Control Hub organization
org = sch.organizations[0]

# Check if network access rule has been enabled. Returns True or False
org.ip_auth_enabled

# Enabling IP Auth
org.ip_auth_enabled = True

# To see the current set of rules
org.ip_auth_rules

# Adding & removing IP rules
# org.add_ip_auth_ruleset(ip, bitmask, comment)
org.add_ip_auth_ruleset(“33.45.231.23”, “32”, “home”)
org.remove_ip_auth_ruleset(33.45.231.23”, “32”,)

# Remember to update organization after making the change
sch.update_organization(org)

A step forward in developer experience

StreamSets SDK for Python 6.6 isn't just a version bump, it's a step forward in developer experience, enterprise scalability, and platform automation. These features were built in response to feedback from teams managing real-time data flows in complex, regulated environments. And they make StreamSets even more scalable, powerful and enterprise-ready.

The SDK 6.6 release is available now on PyPI. Documentation and sample code snippets are coming soon, but you can already start exploring these new features in your favorite IDE by running the pip command below.

pip3 install streamsets~=6.6