---
title: "Pulumi Provider"
---

# Pulumi Provider

:::note[Not publicly released]
The Pulumi provider is a companion project to HeliosProxy that is **not
publicly released** — no package is published to npm, PyPI, NuGet or the Go
module proxy, and there is no public repository. It is available on request:
contact [sales@heliosdb.com](mailto:sales@heliosdb.com).
:::

The Pulumi provider is built on top of the [Terraform provider](/docs/proxy/terraform-provider/) via `pulumi-terraform-bridge`'s plugin-framework variant (`pf`). Same five resources, surfaced as first-class Pulumi types in TypeScript, Python, Go, and .NET.

## TypeScript example

```typescript
import * as heliosproxy from "@heliosdatabase/pulumi-heliosproxy";

const pool = new heliosproxy.PoolProfile("default-pool", {
  mode: "transaction",
  maxPoolSize: 200,
});

const proxy = new heliosproxy.Instance("analytics", {
  replicas: 2,
  image: "ghcr.io/heliosdatabase/hdb-heliosdb-proxy:latest", // pin a release tag in production
  poolProfileRef: pool.name,
  nodes: [
    { host: "pg-primary.db.svc", port: 5432, role: "primary", weight: 100 },
    { host: "pg-standby.db.svc", port: 5432, role: "standby", weight: 100 },
  ],
});
```

## Resources

| Resource | Wraps Terraform |
|---|---|
| `heliosproxy.Instance` | `heliosproxy_instance` |
| `heliosproxy.PoolProfile` | `heliosproxy_pool_profile` |
| `heliosproxy.RoutingRule` | `heliosproxy_routing_rule` |
| `heliosproxy.AuditPolicy` | `heliosproxy_audit_policy` |
| `heliosproxy.TenantQuota` | `heliosproxy_tenant_quota` |

## How the bridge works

Two binaries make up the provider: `pulumi-tfgen-heliosproxy` generates the Pulumi schema, and `pulumi-resource-heliosproxy` is the plugin `pulumi up` launches, with the schema embedded.

Teams that already use Pulumi don't need to switch to HCL.
