Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.pragmatiks.io/llms.txt

Use this file to discover all available pages before exploring further.

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

Lifecycle Methods

Implement create, update, and delete operations.

CLI Reference

Full command reference for provider management.