Skip to main content
Change of provenance

The repository or configuration that created this release differ from a previous release. View details.

Pre-release

This release is a pre-release and may not be stable for production use.

GoodData Pipelines

A high-level library for automating the lifecycle of GoodData Cloud (GDC).

You can use the package to manage following resources in GDC:

  1. Provisioning (create, update, delete)
    • User profiles
    • User Groups
    • User/Group permissions
    • User Data Filters
    • Child workspaces (incl. Workspace Data Filter settings)
  2. Backup and restore of workspaces
    • Create and backup snapshots of workspace metadata to local storage, AWS S3, or Azure Blob Storage
  3. LDM Extension
    • extend the Logical Data Model of a child workspace with custom datasets and fields

In case you are not interested in incorporating a library in your own program but would like to use a ready-made script, consider having a look at GoodData Productivity Tools.

Provisioning

The entities can be managed either in full load or incremental way.

Full load means that the input data should represent the full and complete desired state of GDC after the script has finished. For example, you would include specification of all child workspaces you want to exist in GDC in the input data for workspace provisioning. Any workspaces present in GDC and not defined in the source data (i.e., your input) will be deleted.

On the other hand, the incremental load treats the source data as instructions for a specific change, e.g., a creation or a deletion of a specific workspace. You can specify which workspaces you would want to delete or create, while the rest of the workspaces already present in GDC will remain as they are, ignored by the provisioning script.

The provisioning module exposes Provisioner classes reflecting the different entities. The typical usage would involve importing the Provisioner class and the data input data model for the class and planned provisioning method:

import os
import logging

from csv import DictReader
from pathlib import Path

# Import the Entity Provisioner class and corresponding model from the gooddata_pipelines library
from gooddata_pipelines import UserFullLoad, UserProvisioner

# Create the Provisioner instance - you can also create the instance from a GDC yaml
# profile with UserProvisioner.create_from_profile(profile="default")
provisioner = UserProvisioner.create(
    os.environ["GDC_HOSTNAME"], os.environ["GDC_AUTH_TOKEN"]
)

# Optional: set up logging and subscribe to logs emitted by the provisioner
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
provisioner.logger.subscribe(logger)

# Load your data from your data source
source_data_path: Path = Path("path/to/some.csv")
source_data_reader = DictReader(source_data_path.read_text().splitlines())
source_data = [row for row in source_data_reader]

# Validate your input data. UserFullLoad forbids unknown keys, and user_groups must be a
# list, so split the delimited CSV column before validating.
full_load_data: list[UserFullLoad] = [
    UserFullLoad(**{**row, "user_groups": row["user_groups"].split("|")})
    for row in source_data
]

# Run the provisioning
provisioner.full_load(full_load_data)

Ready-made scripts covering the basic use cases can be found here in the GoodData Productivity Tools repository.

Backup and Restore of Workspaces

The backup and restore module allows you to create snapshots of GoodData Cloud workspaces and restore them later. Backups can be stored locally, in AWS S3, or Azure Blob Storage.

import os

from gooddata_pipelines import BackupManager
from gooddata_pipelines.backup_and_restore.models.storage import (
    BackupRestoreConfig,
    LocalStorageConfig,
    StorageType,
)

# Configure backup storage
config = BackupRestoreConfig(
    storage_type=StorageType.LOCAL,
    storage=LocalStorageConfig(),
)

# Create the BackupManager instance
backup_manager = BackupManager.create(
    config=config,
    host=os.environ["GDC_HOSTNAME"],
    token=os.environ["GDC_AUTH_TOKEN"]
)

# Backup specific workspaces
backup_manager.backup_workspaces(workspace_ids=["workspace1", "workspace2"])

# Backup workspace hierarchies (workspace + all children)
backup_manager.backup_hierarchies(workspace_ids=["parent_workspace"])

# Backup entire organization
backup_manager.backup_entire_organization()

For S3 or Azure Blob Storage, configure the appropriate storage type and credentials in BackupRestoreConfig.

Bugs & Requests

Please use the GitHub issue tracker to submit bugs or request features.

Changelog

See GitHub releases for released versions and a list of changes.

Metadata

Release files for gooddata-pipelines 1.78.1.dev1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Change of provenance

The repository or configuration that created these release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Source distribution (sdist)

Source distribution for gooddata-pipelines 1.78.1.dev1
File Size Uploaded Provenance
gooddata_pipelines-1.78.1.dev1.tar.gz 102.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for gooddata-pipelines 1.78.1.dev1
File Interpreter ABI Platform
gooddata_pipelines-1.78.1.dev1-py3-none-any.whl Python 3 none any Details

Total release size: 202.9 kB

Release files / gooddata_pipelines-1.78.1.dev1.tar.gz

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL gooddata_pipelines-1.78.1.dev1.tar.gz
Size 102.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4cefba1cddce9bf95c46dcecbe39a6a92074a6829fd979e552a44f4e853e1d49
BLAKE2b-256 checksum
How to use checksums
9ebb4dbb7b04eb082d4fa39b2390f357950371ccbc439a6b7f5487ddc92f3376
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / gooddata_pipelines-1.78.1.dev1-py3-none-any.whl

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL gooddata_pipelines-1.78.1.dev1-py3-none-any.whl
Size 100.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f633db1600d74264c53585c1140cf0fa604617ba5084c28e9fcc90ce0c3c9b0e
BLAKE2b-256 checksum
How to use checksums
38861f9c68f4b344759cbbe971a65897298716ab785cff28cf3a6cca7048a25b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for gooddata-pipelines 1.78.1.dev1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Change of provenance

The configuration that created this release differs from a previous release.

While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.

Configuration

  • Removed 1.78.0 build-release.yaml
  • Added 1.78.1.dev1 dev-release.yaml
Select from 2 files

Attestation for gooddata_pipelines-1.78.1.dev1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page