> ## 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.

# FAQ

> Frequently asked questions about Pragmatiks

<AccordionGroup>
  <Accordion title="Is there a free tier?">
    Pragmatiks is currently in private beta. During this period, usage is free for beta participants. Pricing will be announced when we move to general availability. Contact [support@pragmatiks.io](mailto:support@pragmatiks.io) to request beta access.
  </Accordion>

  <Accordion title="What cloud providers are supported?">
    Pragmatiks supports **Google Cloud Platform (GCP)** resources including Cloud Storage, CloudSQL, and Secret Manager. It also includes the **Agno** provider for AI agent infrastructure, a **Kubernetes** provider for container workloads, and built-in **Pragma** resources for secrets and file storage. AWS and Azure support is on the roadmap. See the [Store](/providers/overview) for the full list of available resources.
  </Accordion>

  <Accordion title="How does Pragmatiks handle authentication and security?">
    Pragmatiks uses [Clerk](https://clerk.com) for user authentication. When you run `pragma auth login`, you authenticate through a secure browser flow. Your credentials are never stored in plaintext. Provider credentials (like GCP service accounts) are managed separately and securely within the platform. See [Authentication](/cli/authentication) for details.
  </Accordion>

  <Accordion title="What happens if a resource fails?">
    When a resource operation fails, Pragmatiks retries it automatically. If retries are exhausted, the failure details are preserved for debugging. You can inspect failures, fix the root cause, and retry. Resources stuck in `processing` state are automatically detected and recovered. See the [Error Recovery](/guides/error-recovery) guide for the full workflow.
  </Accordion>

  <Accordion title="What happens when I delete a resource that other resources depend on?">
    Dependents are **detached**, not cascade-deleted. Pragmatiks removes the dependency reference from each dependent's config and sends them back to their provider for update. The provider decides whether the resource can continue without the deleted dependency — if it can't, the resource transitions to `failed`. This prevents accidental cascade deletions while letting providers handle graceful degradation. See [Deletion Behavior](/concepts/resources#deletion-behavior) for details.
  </Accordion>

  <Accordion title="Can I apply resources in any order?">
    Yes. If a resource's dependencies aren't ready yet, Pragmatiks stores it in `pending` state and automatically processes it once all dependencies become available. You can define your entire infrastructure in a single YAML file and apply it at once — Pragmatiks resolves the dependency graph and processes resources in the correct order.
  </Accordion>

  <Accordion title="How do I deploy an AI agent?">
    Define your agent in YAML with a model, instructions, and optional tools, then apply it. See the [Quickstart](/quickstart) for a step-by-step walkthrough.
  </Accordion>

  <Accordion title="What's the difference between a FieldReference and Dependency[T]?">
    A **FieldReference** references a single output value from another resource (like a connection URL or API key). A **Dependency\[T]** gives the provider access to the entire resolved resource — its config, outputs, and metadata. Use FieldReference for simple value passing; use Dependency\[T] when the provider needs the full resource context. See [Reactive Dependencies](/concepts/reactive-dependencies) for details.
  </Accordion>

  <Accordion title="How do I upload files?">
    Use the `@path` syntax in your YAML config to upload files inline:

    ```yaml theme={"theme":{"light":"min-light","dark":"min-dark"}}
    provider: pragma
    resource: file
    name: my-document
    config:
      content: "@./document.pdf"
      content_type: "application/pdf"
    ```

    Or use the SDK's `upload_file()` method for programmatic uploads. See the [File Uploads](/guides/file-uploads) guide.
  </Accordion>

  <Accordion title="Can I use Pragmatiks alongside Terraform?">
    Yes. Pragmatiks and Terraform solve different problems and can coexist. Use Terraform for static infrastructure that rarely changes (VPCs, IAM, etc.) and Pragmatiks for dynamic data and AI infrastructure with dependencies that need automatic propagation. See [How We Compare](/learn/how-we-compare) for more details on when to use each tool.
  </Accordion>

  <Accordion title="How do I get support?">
    Email [support@pragmatiks.io](mailto:support@pragmatiks.io) for assistance. Beta participants also have access to a private Slack channel for faster response times.
  </Accordion>

  <Accordion title="What's on the roadmap?">
    Key roadmap items include:

    * **AWS and Azure providers** — Expanding beyond GCP
    * **Pre-built AI pipeline templates** — Full end-to-end infrastructure templates
    * **Team workspaces** — Collaboration features for organizations
    * **Additional AI providers** — More LLM and vector database integrations

    Contact [support@pragmatiks.io](mailto:support@pragmatiks.io) to share feature requests or learn more about upcoming releases.
  </Accordion>
</AccordionGroup>
