Skip to main content
Once your provider is ready, publish a version and install it to make your resource types available to users.

Prerequisites

Before publishing, ensure:
  • You are authenticated: pragma auth login
  • Your pyproject.toml has a [tool.pragma] table; pragma providers init generates it

Publish a Version

From your provider project directory:
This:
  1. Builds the wheel with uv build
  2. Extracts the resource type schemas from the provider package
  3. Uploads the wheel and schemas as <org>/<provider>, where <org> is your organization’s slug and <provider> is the provider key of [tool.pragma]
The version comes from the wheel, so from version in pyproject.toml. Published versions are immutable: bump the version before publishing again. Publish from another directory, attach release notes, or upload a wheel you built yourself:

Install the Provider

Install the published provider in your organization:
install queues the provider, and the platform deploys it. Pin a version with --version:

Check Deployment Status

The status shows the deployment state (pending, progressing, available, or failed), the deployed version, its health, and when it last changed.

Ship a New Version

Publish the new version, then upgrade the installed provider to it:
To move back to an earlier version:
pragma providers deploy <org>/mycompany --version 0.2.0 redeploys an installed provider at a given version.

Verify Deployment

List the resource types your provider registered:
Create a test resource to confirm everything works. Save it as test-resource.yaml:

Troubleshooting

”pyproject.toml not found” or “Missing [tool.pragma] section”

Run publish from your provider directory, or pass the directory:
The [tool.pragma] table in pyproject.toml needs provider, package, display_name, and description.

”Authentication required”

Log in to the platform:

Version already published

Published versions are immutable. Bump version in pyproject.toml and publish again.

Build or schema extraction failed

Common causes:
  • Missing dependencies in pyproject.toml
  • Syntax errors in provider code
  • A Config or Outputs class without a docstring, or a config field with a bare type instead of Field[T]
  • A non-computed resource without on_observe

Resource type not found

Ensure your resources are registered with the provider:
The module that registers them must be imported by the package named in [tool.pragma].

Resources not processing

Verify the provider is running:
If resources stay pending, check:
  • The provider deployed successfully
  • The resource configuration is valid
  • The resource’s dependencies are ready

Complete Deployment Workflow

Publish, then install or upgrade:

Next Steps

Lifecycle Methods

Implement create, update, and delete operations.

CLI Reference

Full command reference for provider management.