# Packages

Packages are the reusable building blocks you use to create and deploy infrastructure in Bluebricks. They define exactly what should run in an [environment](/docs/orchestration/environments.md).

Packages help you take individual infrastructure components, whether built in Bluebricks or pulled from existing Infrastructure as Code (IaC), and turn them into modular, versioned, and repeatable deployments. In most cases, a package is simply a published version of an artifact.

## Package types

There are two types of packages:

**Artifact**: a single infrastructure building block. Artifacts define one component's code, inputs, outputs, and metadata. They are not deployed on their own, but they become powerful when reused inside blueprints.

**Blueprint**: a deployable template made of one or more packages. Blueprints connect artifacts together, set defaults, and expose only the inputs needed at deployment time.

<table><thead><tr><th width="202.02734375"></th><th width="262.7265625">Artifact</th><th width="281.21484375">Blueprint</th></tr></thead><tbody><tr><td><strong>What it represents</strong></td><td>A single IaC component (one Terraform module, one Helm chart, one CloudFormation template)</td><td>A composed stack of one or more packages</td></tr><tr><td><strong>Deployable directly?</strong></td><td>No, must be included in a blueprint</td><td>Yes, installed into an environment</td></tr><tr><td><strong>Defines relationships?</strong></td><td>No, it has inputs and outputs but no awareness of other packages</td><td>Yes, wires packages together through data references</td></tr><tr><td><strong>Versioned?</strong></td><td>Yes</td><td>Yes</td></tr><tr><td><strong>Contains other packages?</strong></td><td>No</td><td>Yes, artifacts, other blueprints, or both</td></tr></tbody></table>

The distinction mirrors a common pattern in software: artifacts are libraries, blueprints are applications. You build and test libraries independently, but you ship applications that compose them into something useful.

## The packages list page

<figure><picture><source srcset="/files/jPPFDoqwepgiQIsynmO7" media="(prefers-color-scheme: dark)"><img src="/files/P8UV0p1cuGcwWLkxCnDI" alt=""></picture><figcaption></figcaption></figure>

When you go to the Packages page, the list organizes packages into two tabs: **Blueprints** and **Artifacts**.

### Blueprints tab

The Blueprints tab is the default view. It lists every published blueprint in your organization.

<details>

<summary><strong>Table columns</strong></summary>

Each row shows:

* **Name**: the blueprint name, with an expand icon to reveal child packages
* **Version**: the latest published version
* **Technology**: IaC type badges for the underlying packages (Terraform, OpenTofu, Helm, CloudFormation, Bicep, Generic)
* **Description**: the blueprint description
* **Tags**: tags inherited from the blueprint's packages
* **Published by**: the user who published the blueprint
* **Repository**: the linked source repository

</details>

<details>

<summary><strong>Search and filters</strong></summary>

Use the controls above the table to narrow results:

* **Search**: find blueprints by name or description
* **Artifact**: filter blueprints that contain a specific artifact
* **Technology**: filter by IaC type (Terraform, OpenTofu, Helm, CloudFormation, Bicep, Generic)
* **Tags**: filter by package tags

</details>

Expand a blueprint row to see its child packages, their versions, and IaC types inline.

### Artifacts tab

The Artifacts tab lists every published artifact. It uses the same table columns and filters as the Blueprints tab, except the **Artifact** filter is not available (since you are already viewing artifacts).

## Viewing a blueprint

Select a blueprint row to open its detail page. The blueprint detail page uses a two-panel layout:

* **Left panel**: shows the blueprint name, version, publisher, repository, description, the list of packages it contains, and tags.
* **Right panel**: shows three collapsible sections for **Inputs**, **Outputs**, and **Packages Configuration**, where you can inspect how packages are wired together.

For a full explanation of how blueprints work, including composition, data references, and versioning, see [Blueprints](/docs/orchestration/packages/blueprints-overview.md).

## Where to start

If you are getting started with packages, begin by creating an artifact, then build up from there:

1. **Create an artifact**: define a reusable infrastructure building block with clear inputs and outputs. [Learn how to create an artifact](/docs/orchestration/packages/artifacts-overview/creating-artifacts.md)
2. **Create a blueprint**: compose one or more artifacts and define how they connect. [Learn how to create a blueprint](/docs/orchestration/packages/blueprints-overview/creating-blueprints.md)
3. **Deploy the blueprint into an environment**: Bluebricks orchestrates the environment and runs the underlying infrastructure code for you. [Learn more about environments](/docs/orchestration/environments.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bluebricks.co/docs/orchestration/packages.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
