Pragma Provider
Built-in platform resources for Pragmatiks.
Declaratively manage secrets, non-sensitive configuration, and file storage alongside the rest of your infrastructure. The resources in this provider are available out of the box in every organization and are commonly referenced by other providers through FieldReference.
Installation
pip install pragmatiks-pragma-provider
or with uv:
uv add pragmatiks-pragma-provider
Resources
| Resource | Type Slug | Description |
|---|---|---|
| Secret | pragma/secret |
Platform-managed secrets referenced by other resources |
| Config | pragma/config |
Non-sensitive configuration values shared across resources |
| File | pragma/file |
Platform-managed file storage with public download URLs |
Secret
Stores sensitive key-value data and exposes each entry as an output so that other resources can reference individual values through FieldReference.
Config:
data(dict[str, str], required, mutable) -- Key-value pairs of secret data. Values must be strings.
Outputs:
- Each key-value pair from
datais exposed as a separately referenceable output field (e.g.,outputs.username,outputs.password).
resources:
database-credentials:
provider: pragma
resource: secret
config:
data:
username: app_service
password: hunter2
Behavior:
- Create: Stores each key as a separate output for downstream references.
- Update: Replaces the full output set with the new
datakeys and values. - Delete: No-op. Secret state is held alongside the resource itself.
Config
Non-sensitive configuration store. Unlike pragma/secret, values may be any JSON-serializable type, which makes it a natural place to keep shared defaults (project IDs, regions, feature flags) that many resources reference.
Config:
data(dict[str, Any], required, mutable) -- Key-value pairs of configuration data. Values may be strings, numbers, booleans, lists, or nested objects.
Outputs:
- Each key-value pair from
datais exposed as a separately referenceable output field (e.g.,outputs.project_id,outputs.region), preserving its original type.
resources:
gcp-defaults:
provider: pragma
resource: config
config:
data:
project_id: my-gcp-project
region: us-central1
tags:
- production
- primary
Behavior:
- Create: Stores each key as a separate output for downstream references.
- Update: Replaces the full output set with the new
datakeys and values. - Delete: No-op. Config state is held alongside the resource itself.
File
Platform-managed file storage. The actual file content is uploaded through the Pragmatiks API (POST /files/{name}/upload); this resource reads the uploaded metadata and exposes URLs, size, and checksum as outputs.
Config: none -- the resource tracks a file already uploaded through the Pragmatiks API under the resource's name.
Outputs:
url-- Internalpragma://URL used for cross-resource references.public_url-- Public HTTP URL for external download.size-- File size in bytes.content_type-- MIME type stored at upload time.checksum-- SHA256 hash of the file content.uploaded_at-- Timestamp the file was uploaded.
resources:
onboarding-doc:
provider: pragma
resource: file
config: {}
Behavior:
- Create: Reads the uploaded file metadata and exposes URLs, size, and checksum as outputs. Fails with a clear error if the file content has not been uploaded yet.
- Update: Re-reads the metadata from storage so outputs reflect the latest uploaded version.
- Delete: Removes both the file content and its metadata from the underlying object store. Idempotent -- missing files are treated as already deleted.
Runtime Environment
The pragma/file resource reads storage configuration from environment variables populated by the Pragmatiks runtime. Standalone use is not supported.
| Variable | Purpose |
|---|---|
PRAGMA_FILE_GCS_BUCKET |
Object-store bucket holding uploaded file content |
PRAGMA_FILE_PUBLIC_URL |
Base URL used to compose public download URLs |
PRAGMA_RUNTIME_ORGANIZATION_ID |
Identifies the organization's file prefix in the bucket |
Development
# Lint and type check
task pragma:check
# Format
task pragma:format
Metadata
Release files for pragmatiks-pragma-provider 6.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pragmatiks_pragma_provider-6.1.0.tar.gz | 5.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pragmatiks_pragma_provider-6.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.4 kB
Release files / pragmatiks_pragma_provider-6.1.0.tar.gz
| Download URL | pragmatiks_pragma_provider-6.1.0.tar.gz |
|---|---|
| Size | 5.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8567860b9d735b512ae29990d23477a26a1fba64c65c7b04f4c10dfa848a7db8
|
|
BLAKE2b-256 checksum How to use checksums |
1c13079e7551cbbc7a5d14e904d40ab998cee1e1bfc6c4ab47873ea3fd5e1ee6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pragmatiks_pragma_provider-6.1.0-py3-none-any.whl
| Download URL | pragmatiks_pragma_provider-6.1.0-py3-none-any.whl |
|---|---|
| Size | 8.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b21203ab8489cd924679e37f4c4060b93f29ee75d337936e060facad6785435f
|
|
BLAKE2b-256 checksum How to use checksums |
aa7c7a8aa7c4f062a934637e2e5f9fce01957c524c57d8a86e46657c3520a2f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|