Skip to main content

GCP provider for Pragmatiks

Project description

GCP Provider

GCP provider for Pragmatiks - manage Google Cloud resources declaratively.

Available Resources

Secret (gcp/secret)

Manages secrets in GCP Secret Manager using user-provided service account credentials.

from gcp_provider import Secret, SecretConfig

# Define a secret
secret = Secret(
    name="my-api-key",
    config=SecretConfig(
        project_id="my-gcp-project",
        secret_id="api-key",
        data="super-secret-value",
        credentials={"type": "service_account", ...},  # or JSON string
    ),
)

Config:

  • project_id - GCP project ID where the secret will be created
  • secret_id - Identifier for the secret (must be unique per project)
  • data - Secret payload data to store
  • credentials - GCP service account credentials (JSON object or string)

Outputs:

  • resource_name - Full GCP resource name (projects/{project}/secrets/{id})
  • version_name - Full version resource name including version number
  • version_id - The version number as a string

Installation

pip install pragmatiks-gcp-provider

Development

Testing

# Install dependencies
uv sync --dev

# Run tests
uv run pytest tests/

Writing Tests

Use ProviderHarness to test lifecycle methods:

from pragma_sdk.provider import ProviderHarness
from gcp_provider import Secret, SecretConfig

async def test_create_secret():
    harness = ProviderHarness()
    result = await harness.invoke_create(
        Secret,
        name="test-secret",
        config=SecretConfig(
            project_id="test-project",
            secret_id="my-secret",
            data="secret-value",
            credentials=mock_credentials,
        ),
    )
    assert result.success
    assert result.outputs.resource_name is not None

Deployment

Push your provider to Pragmatiks platform:

pragma provider push

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pragmatiks_gcp_provider-0.88.1.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pragmatiks_gcp_provider-0.88.1-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file pragmatiks_gcp_provider-0.88.1.tar.gz.

File metadata

  • Download URL: pragmatiks_gcp_provider-0.88.1.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pragmatiks_gcp_provider-0.88.1.tar.gz
Algorithm Hash digest
SHA256 f4b14d3b73fd34d6b1934fa14f4dcb233e27cbb538b1024f72ca56f1d04caada
MD5 95c1d4c56f0f4ae3f83580d2f1a59a3f
BLAKE2b-256 8e2a230de9c5a395a15cbd521b8b475a174f6e04807bf503bc700fef43546cd4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pragmatiks_gcp_provider-0.88.1.tar.gz:

Publisher: publish.yaml on pragmatiks/pragma-providers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pragmatiks_gcp_provider-0.88.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pragmatiks_gcp_provider-0.88.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ba4a504a2b8cf7c82f82d53c1d41d605e44921d4d0d5ab88c179e42c1757505f
MD5 a93cbb31a7887a113337f20f00a966aa
BLAKE2b-256 c937a24540ab4ade4365fc78ef3e2afbc4a2b70ba9ba58b8a4fddc225d851d3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pragmatiks_gcp_provider-0.88.1-py3-none-any.whl:

Publisher: publish.yaml on pragmatiks/pragma-providers

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page