pulumi/pulumi
Glossary
Pulumi has its own vocabulary. Many terms overlap with Terraform or generic cloud-ops lingo but are used in subtly different ways. The definitions below are the ones used inside pulumi/pulumi.
| Term | Meaning |
|---|---|
| Stack | A single named instantiation of a Pulumi project (e.g. dev, prod). State is per-stack. Implemented as the Stack interface in pkg/backend/stack.go. |
| Project | The top-level unit, defined by a Pulumi.yaml at the program root. Contains zero or more stacks. |
| Resource | A managed cloud object (or any object the user wants the engine to track). Identified by a URN. |
| URN | Uniform Resource Name — the engine's identity for a resource: urn:pulumi:<stack>::<project>::<parent-type>$<type>::<name>. Defined in sdk/go/common/resource/urn/urn.go. |
| Type token | The string identifying a resource's kind, e.g. aws:s3/bucket:Bucket. Format: <package>:<module>:<TypeName>. |
| Provider | A plugin that implements the ResourceProvider gRPC service for a cloud or system. Each cloud has its own provider repo (pulumi-aws, etc.). |
| Default provider | A provider instance created by the engine when the user doesn't construct one explicitly. Synthesized at pkg/resource/deploy/providers/. |
| Component resource | A resource with no provider counterpart — purely a logical grouping of children. Implemented in user code by extending ComponentResource. |
| Custom resource | A resource with a real provider counterpart (the common case). |
| Remote component | A component implemented in another language and exposed via the provider interface (Construct/Call). See proto/pulumi/provider.proto. |
| Language host | A Go process that wraps a language runtime (Node, Python, Go, ...) and exposes the LanguageRuntime gRPC service. Lives at sdk/<lang>/cmd/pulumi-language-<lang>/. |
| Engine | The orchestrator that runs operations. Lives in pkg/engine/ and pkg/resource/deploy/. |
| Resource monitor | The gRPC service the engine exposes to the language host (proto/pulumi/resource.proto). User programs call into it to register resources. |
| Snapshot | The serialized state of a stack — all resources and their inputs/outputs at a point in time. Defined in sdk/go/common/resource/snapshot.go and persisted via pkg/resource/deploy/snapshot.go. |
| Plan | A pre-computed sequence of steps the engine intends to execute. Used by pulumi preview --save-plan. See pkg/resource/deploy/plan.go. |
| Step | A single unit of work the engine performs on a resource (Same, Create, Update, Delete, Replace, Refresh, Read, Import). Defined in pkg/resource/deploy/step.go (the largest non-test file at ~88 KB). |
| Step generator | The component that diffs old vs desired state and emits steps. pkg/resource/deploy/step_generator.go. |
| Step executor | Runs steps in dependency order with bounded parallelism. pkg/resource/deploy/step_executor.go. |
| Operation | A user-visible action: up, preview, refresh, destroy, import. |
| Update | An execution of an operation against a stack. The state has an Operation flag while one is in progress. |
| Backend | Where state is stored. Two implementations in this repo: pkg/backend/diy (filesystem/cloud-blob) and pkg/backend/httpstate (Pulumi Cloud). |
| DIY backend | The filesystem/blob-storage backend (formerly self-managed or file backend). Renamed to "DIY" — the directory is pkg/backend/diy/. |
| Pulumi Cloud / service backend | The hosted backend at app.pulumi.com. The Go client lives in pkg/backend/httpstate/. |
| Output | A future-like type that wraps a value plus dependency tracking. The fundamental currency of dataflow in user programs. See sdk/go/pulumi/types.go, sdk/nodejs/output.ts, sdk/python/lib/pulumi/output.py. |
| Input | A value that may be a literal or an Output. Inputs flow into resources; outputs come back out. |
| Asset / Archive | First-class file/blob types. Definitions in proto/pulumi/asset.proto and sdk/go/common/resource/asset.go. |
| Secret | A value marked as confidential. Encrypted in the snapshot. Multiple encryption providers in pkg/secrets/{b64,passphrase,cloud,service}/. |
| Schema | A JSON document describing a provider's resources, functions, and types. Schema is pkg/codegen/schema/pulumi.json (the metaschema). Used to generate SDKs and to drive pulumi convert. |
| PCL | Pulumi Configuration Language — the HCL-derived intermediate representation pulumi convert runs through. Code lives in pkg/codegen/hcl2/ and sdk/pcl/. |
| Programgen | Code generation that produces a program in a target language from PCL. |
| SDKgen | Code generation that produces a typed library (an SDK) from a provider schema. |
| Codegen | Umbrella term covering both Programgen and SDKgen. Lives in pkg/codegen/. |
| Converter | A plugin that turns some other IaC format (Terraform, CloudFormation, Kubernetes YAML) into PCL, which is then converted to the target language. |
| Automation API | A library that lets you embed Pulumi inside your own program — no separate pulumi CLI process required at the API surface (it still spawns CLI subprocesses internally). Lives at sdk/go/auto/, sdk/nodejs/automation/, sdk/python/lib/pulumi/automation/. |
| Hooks | Resource lifecycle callbacks (before/after Create/Update/Delete) registered via RegisterResourceHook. See pkg/resource/deploy/resource_hooks.go. |
| Transform | A function that rewrites resource inputs before registration. Stack transforms apply to every resource; resource-local transforms apply to one. |
| Alias | An old URN that should be remapped to a new URN, for renames and refactors. proto/pulumi/alias.proto. |
| Policy pack | A set of policies (rules) checked at preview/up time. Implemented via the Analyzer gRPC service. See pkg/cmd/pulumi/policy/. |
| Plugin | Any Pulumi sub-process the engine spawns: language host, provider, analyzer, or converter. Managed by pkg/engine/plugins.go. |
| Workspace | The on-disk representation of a project (Pulumi.yaml, Pulumi.<stack>.yaml, lockfiles). Code lives in sdk/go/common/workspace/. |
| Lifecycle test | A property-based engine test that runs synthetic programs against a mock provider. Harness at pkg/engine/lifecycletest/. |
| Conformance test | A cross-language SDK test suite ensuring every language behaves identically. Driver: scripts/run-conformance.sh. |
Common abbreviations
| Abbrev | Expansion |
|---|---|
| IaC | Infrastructure as Code |
| RPC | Remote Procedure Call (gRPC throughout this codebase) |
| URN | Uniform Resource Name |
| PCL | Pulumi Configuration Language |
| TF | Terraform |
| CFN | CloudFormation |
| DIY | Do-It-Yourself (the self-managed backend) |
| ESC | Pulumi Environments, Secrets, Configuration — adjacent product, integrated via sdk/go/common/env/ and pkg/cmd/pulumi/env/ |
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.