Skip to main content

OciRepo

An OCI repository in your organization's bundle catalog.

An OCI repository is the container for all published versions of a single infrastructure-as-code package. It is analogous to a Docker image repository but for Massdriver bundles.

Each repository has a unique name (e.g., aws-aurora-postgres) and contains:

  • Tags -- the individual published versions (1.0.0, 1.1.0, 1.2.3, etc.)
  • Release channels -- auto-resolving version constraints (latest, ~1, ~1.2) that always point to the newest matching tag

To fetch a specific bundle version from a repository, use the bundle query with a BundleId like aws-aurora-postgres@1.2.3 or aws-aurora-postgres@~1.

type OciRepo {
id: ID!
name: OciRepoName!
reference: String!
artifactType: String!
attributes: Map!
effectiveAttributes: Map!
createdAt: DateTime!
updatedAt: DateTime!
description: String
icon: String
sourceUrl: String
readme: String
changelog: String
releaseChannels(
filter: OciRepoReleaseChannelsFilter
sort: OciRepoReleaseChannelsSort
cursor: Cursor
): OciRepoReleaseChannelsPage
tags(
filter: OciRepoTagsFilter
sort: OciRepoTagsSort
cursor: Cursor
): OciRepoTagsPage
grants(
cursor: Cursor
): GrantsPage
}

Fields

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

OciRepo.name ● OciRepoName! non-null scalar {#name}

Repository name, unique within your organization (e.g., aws-aurora-postgres).

OciRepo.reference ● String! non-null scalar {#reference}

The bare OCI reference for this repository: <registry>/<org>/<repo> (for example, api.massdriver.cloud/acme/aws-aurora-postgres).

Append :<tag> or @<digest> to address a specific manifest and use the result directly with oras, docker, or any OCI-compliant client:

oras pull api.massdriver.cloud/acme/aws-aurora-postgres:1.2.3

OciRepo.artifactType ● String! non-null scalar {#artifact-type}

The OCI artifact type stored in this repository. Currently always application/vnd.massdriver.bundle.v1+json.

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

Key-value attributes assigned directly to this repository, used by ABAC policies. Reserved keys starting with md- are auto-injected by the system and excluded from this map — see effectiveAttributes for the merged view.

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

The full set of attributes that ABAC policy evaluation sees for this repository — your user attributes plus auto-injected md-* system attributes (today: md-id, md-repo).

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

Timestamp when this repository was created (UTC).

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

Timestamp when this repository was last modified (UTC).

OciRepo.description ● String scalar {#description}

Short summary of what this repository provisions, taken from the latest published release. null when the repository has no releases yet or the author omitted the description.

OciRepo.icon ● String scalar {#icon}

URL to this repository's display icon (SVG), taken from the latest published release. null when the repository has no releases yet or the latest release has no icon.

The URL is authenticated — callers must have an active browser session or valid API credentials for the owning organization. Embedding it in an <img> tag from the web UI works because the browser sends the session cookie automatically; programmatic clients must include an Authorization header.

OciRepo.sourceUrl ● String scalar {#source-url}

URL of the source code this repository is published from (for example, a GitHub link), when the author provides one. Taken from the latest release.

OciRepo.readme ● String scalar {#readme}

The README for this repository, in markdown — taken from the latest stable release. null if no release has shipped a README. To get a specific version's README, query that tag's readme field, or the bundle(id: "name@version") { readme } field.

OciRepo.changelog ● String scalar {#changelog}

The changelog for this repository, in markdown — taken from the latest stable release. null if no release has shipped a changelog. To get a specific version's changelog, query that tag's changelog field, or the bundle(id: "name@version") { changelog } field.

OciRepo.releaseChannels ● OciRepoReleaseChannelsPage object {#release-channels}

Paginated list of release channels for this repository.

Each channel is a version constraint that auto-resolves to the latest matching tag. Use the stable filter to show only stable or only development channels.

OciRepo.releaseChannels.filter ● OciRepoReleaseChannelsFilter input {#oci-repo-release-channels-filter}

Filter by stable or development channels.

OciRepo.releaseChannels.sort ● OciRepoReleaseChannelsSort input {#oci-repo-release-channels-sort}

Sort order for channels. Defaults to name ascending.

OciRepo.releaseChannels.cursor ● Cursor input {#oci-repo-release-channels-cursor}

Cursor from a previous page's cursor.next or cursor.previous.

OciRepo.tags ● OciRepoTagsPage object {#tags}

Paginated list of published version tags in this repository.

Each tag represents a single immutable bundle release. Defaults to newest version first (version descending).

OciRepo.tags.filter ● OciRepoTagsFilter input {#oci-repo-tags-filter}

Narrow results to a specific version.

OciRepo.tags.sort ● OciRepoTagsSort input {#oci-repo-tags-sort}

Sort order for tags. Defaults to version descending (newest first).

OciRepo.tags.cursor ● Cursor input {#oci-repo-tags-cursor}

Cursor from a previous page's cursor.next or cursor.previous.

OciRepo.grants ● GrantsPage object {#grants}

Grants the publisher has authored on this repository — what it is shared as, and which recipient projects qualify. If you can see this repository you can see all of its grants; grants are publisher-side metadata, not visibility-gated themselves.

OciRepo.grants.cursor ● Cursor input {#oci-repo-grants-cursor}

Cursor from a previous page's cursor.next or cursor.previous.

Returned By

ociRepo query

Member Of

Component object ● OciRepoEvent object ● OciRepoPayload object ● OciReposPage object

Implemented By

GrantSource union