Skip to main content

Organization

The top-level account that owns all your infrastructure, projects, and team members.

An organization is the root of the Massdriver resource hierarchy. Everything you build and deploy lives under an organization: Projects contain your infrastructure designs, Environments (like staging and production) are where those designs come to life, and Instances are the actual running cloud resources.

Members access resources through group memberships with role-based permissions. Custom attributes defined at the organization level govern attribute metadata across all child resources.

Administrative fields (billing, members, customAttributes) resolve to null for callers who lack the corresponding ABAC action; in that case a top-level FORBIDDEN error is added to the response while the rest of the organization still resolves.

type Organization {
id: ID!
name: String!
createdAt: DateTime!
updatedAt: DateTime!
subscriptionStatus: OrganizationSubscriptionStatus!
trialEndsAt: DateTime
planExpiresOn: Date
logo: LogoOrganization
members(
cursor: Cursor
): AccountsPage
customAttributes(
sort: CustomAttributesSort
cursor: Cursor
): CustomAttributesPage
billing: OrganizationBilling
}

Fields

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

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

Display name shown in the UI and CLI.

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

When this organization was created (UTC).

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

When this organization was last modified (UTC).

Organization.subscriptionStatus ● OrganizationSubscriptionStatus! non-null enum {#subscription-status}

Subscription status of the organization. Visible to every member so the UI can surface billing warnings or lock down features for delinquent accounts. Detailed payment, seat, and invoice data live behind the admin-only billing field.

Organization.trialEndsAt ● DateTime scalar {#trial-ends-at}

When the current free trial expires (UTC).

Only populated while subscriptionStatus is TRIAL. If a paid plan is not active by this timestamp, subscriptionStatus becomes EXPIRED and most write operations are blocked until billing is resolved. Once the organization upgrades to a paid plan or the trial expires, this field returns null.

Organization.planExpiresOn ● Date scalar {#plan-expires-on}

Date the current paid plan period ends.

Populated for annual plans (the date the prepaid year runs out) and for grace periods after a failed payment. null for organizations on monthly plans (which auto-renew without a fixed end date), trial-only organizations, and organizations that have never had a paid plan.

The organization's logo image, or null if no logo has been uploaded.

Organization.members ● AccountsPage object {#members}

Paginated list of human accounts that are members of at least one group in this organization.

Sorted by email ascending. Service accounts live under the top-level serviceAccounts query — pair both when rendering the full organization roster.

Requires the organization:manage action. Callers without it receive null here along with a top-level FORBIDDEN error so the rest of the response still resolves.

Organization.members.cursor ● Cursor input {#organization-members-cursor}

Cursor from a previous page to fetch the next set of results.

Organization.customAttributes ● CustomAttributesPage object {#custom-attributes}

Paginated list of custom attributes that govern attribute metadata across this organization.

Requires the organization:manage action. Callers without it receive null along with a top-level FORBIDDEN error.

Organization.customAttributes.sort ● CustomAttributesSort input {#organization-custom-attributes-sort}

How to sort results. Defaults to alphabetical by key.

Organization.customAttributes.cursor ● Cursor input {#organization-custom-attributes-cursor}

Cursor from a previous page to fetch the next set of results.

Organization.billing ● OrganizationBilling object {#billing}

Subscription, trial, and upgrade information for this organization.

Requires the organization:manage action. Callers without it receive null along with a top-level FORBIDDEN error. The non-sensitive subscriptionStatus field at the top of the type stays visible to every member.

Returned By

organization query

Member Of

AccountViewer object ● OrganizationPayload object ● OrganizationsPage object ● ServiceAccountViewer object