Skip to main content

Component

A bundle placed in a project's blueprint, representing a slot for deployable infrastructure.

A component is the design-time building block of your architecture. It says "I want a database here" or "I need a Kubernetes cluster there." The component defines what to deploy; the actual running infrastructure lives in instances -- one per environment the component is deployed to.

Components are connected to each other via links, which declare that one component's output (e.g., a connection string) should be wired into another component's input.

type Component {
id: ID!
name: String!
description: String
attributes: Map!
effectiveAttributes: Map!
position: ComponentPosition
createdAt: DateTime!
updatedAt: DateTime!
deletable: Deletable!
ociRepo: OciRepo
project: Project
instances(
sort: InstancesSort
cursor: Cursor
): InstancesPage
}

Fields

Component.id ● ID! non-null scalar {#id}

Component.name ● String! non-null scalar {#name}

Human-readable display name shown in the UI.

Component.description ● String scalar {#description}

Optional free-text description of this component's purpose.

Component.attributes ● Map! non-null scalar {#attributes}

Key-value attributes assigned directly to this component.

Component.effectiveAttributes ● Map! non-null scalar {#effective-attributes}

The full attribute map the authorization system evaluates policies against for this component — user attributes merged with the parent project (project wins on conflict) plus auto-injected md-* system attributes.

System attributes always present on a component:

  • md-id — the component's identifier
  • md-project — the project's identifier
  • md-component — the component's local identifier

Component.position ● ComponentPosition object {#position}

Position on the visual canvas. Null if never placed.

Component.createdAt ● DateTime! non-null scalar {#created-at}

When this component was created (UTC).

Component.updatedAt ● DateTime! non-null scalar {#updated-at}

When this component was last modified (UTC).

Component.deletable ● Deletable! non-null object {#deletable}

Whether this component can be safely deleted. Check constraints for blocking conditions.

Component.ociRepo ● OciRepo object {#oci-repo}

The OCI repository (bundle) this component is based on.

Component.project ● Project object {#project}

The project that owns this component.

Component.instances ● InstancesPage object {#instances}

Paginated list of instances deployed from this component.

Returns one instance per environment the component has been deployed to. Defaults to alphabetical order by name.

Component.instances.sort ● InstancesSort input {#component-instances-sort}

Sort field and direction. Defaults to name ascending.

Component.instances.cursor ● Cursor input {#component-instances-cursor}

Pagination cursor returned by a previous page.

Returned By

component query

Member Of

ComponentEvent object ● ComponentPayload object ● ComponentsPage object ● Instance object ● InstanceComparison object ● Link object