Skip to main content
Once your provider passes local tests, deploy it to make your resource types available to users.

Prerequisites

Before deploying, ensure:
  • Your provider has been tested locally with ProviderHarness
  • You are authenticated: pragma auth login
  • You are in your provider project directory (contains pyproject.toml)

Build and Deploy

Build and deploy your provider in a single command:
pragma providers push --deploy
This:
  1. Uploads your provider code
  2. Builds the provider
  3. Extracts and registers resource type schemas
  4. Deploys the provider
Example output:
Pushing provider: mycompany
Source directory: /path/to/mycompany-provider

Created tarball: 12.3 KB
Build started: build-mycompany-abc123
Build successful!

Deployment started: provider-mycompany
Version: 20250115.120000
Status: progressing

Stream Build Logs

To see build output in real-time:
pragma providers push --logs --deploy

Build Without Deploying

Build only (to verify the build succeeds before deploying):
pragma providers push
Then deploy when ready:
pragma providers deploy

Deploy a Specific Version

Deploy a specific version (useful for rollbacks):
pragma providers deploy mycompany 20250114.120000
List available versions:
pragma providers builds mycompany

Check Deployment Status

pragma providers status mycompany
Example output:
Provider: mycompany
Deployment: provider-mycompany
Status: available
Replicas: 1/1 ready
Version: 20250115.120000

Verify Deployment

After deployment, verify your resources are available:
# List your provider's resource types
pragma resources list --provider mycompany
Create a test resource to confirm everything works:
# test-resource.yaml
provider: mycompany
resource: database
name: test-db
config:
  name: test
  size_gb: 10
pragma resources apply test-resource.yaml
pragma resources get mycompany/database test-db

Troubleshooting

”Could not detect provider package”

Run commands from your provider directory, or specify the package explicitly:
pragma providers push --package mycompany_provider

“Authentication required”

Log in to the platform:
pragma auth login

Build failed

Check build logs for details:
pragma providers push --logs
Common causes:
  • Missing dependencies in pyproject.toml
  • Syntax errors in provider code
  • Invalid resource schemas

Resource type not found

Ensure your resources are properly decorated:
@provider.resource("database")
class Database(Resource[DatabaseConfig, DatabaseOutputs]):
    ...
Resources must be exported from the package’s __init__.py for discovery.

Deployment not handling events

Verify the provider is running:
pragma providers status mycompany
If resources remain in PENDING state, check:
  • Provider deployed successfully
  • Resource configuration is valid
  • Dependencies are in READY state

Complete Deployment Workflow

Here is the typical workflow for deploying provider changes:
# 1. Run local tests
uv run pytest tests/

# 2. Build and deploy
pragma providers push --deploy

# 3. Verify deployment
pragma providers status mycompany
pragma resources list --provider mycompany
For iterative development:
# Build only (to verify the build succeeds)
pragma providers push

# When ready, deploy
pragma providers deploy

Next Steps