diff --git a/docs/api/graphql/operations/mutations/update-organization-settings.mdx b/docs/api/graphql/operations/mutations/update-organization-settings.mdx new file mode 100644 index 0000000..01d5beb --- /dev/null +++ b/docs/api/graphql/operations/mutations/update-organization-settings.mdx @@ -0,0 +1,89 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: update-organization-settings +title: updateOrganizationSettings +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Change organization-wide behavior settings. + +Only the settings you provide are changed; omitted settings keep their +current values. Requires the `organization:manageSettings` action. + + + + +```graphql +updateOrganizationSettings( + organizationId: ID! + input: UpdateOrganizationSettingsInput! +): OrganizationPayload +``` + + + + + +### Form Schema + +This mutation supports dynamic form generation using JSON Schema. + +- [JSON Schema](https://api.massdriver.cloud/graphql/v2/inputs/updateOrganizationSettings.json) +- [UI Schema](https://api.massdriver.cloud/graphql/v2/inputs/updateOrganizationSettings.ui.json) + + + +### Arguments + +#### [updateOrganizationSettings.organizationId](#organization-id)[ID!](/api/graphql/types/scalars/id.mdx) \{#organization-id\} +Your organization's unique identifier. + + +#### [updateOrganizationSettings.input](#input)[UpdateOrganizationSettingsInput!](/api/graphql/types/inputs/update-organization-settings-input.mdx) \{#input\} +Change organization-wide behavior settings. Only the settings you provide are changed; omitted settings keep their current values. + + +### Type + +#### [OrganizationPayload](/api/graphql/types/objects/organization-payload.mdx) \ No newline at end of file diff --git a/docs/api/graphql/operations/queries/oci-repos.mdx b/docs/api/graphql/operations/queries/oci-repos.mdx index 6e0a8de..6a9f7d8 100644 --- a/docs/api/graphql/operations/queries/oci-repos.mdx +++ b/docs/api/graphql/operations/queries/oci-repos.mdx @@ -44,9 +44,10 @@ export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => List OCI repositories in your organization's bundle catalog. -Returns a paginated list of repositories. Each repository is the container -for all published versions of a bundle. Use `filter` to narrow by name, -artifact type, or full-text search. +Returns a paginated list of repositories of every artifact type (bundles +and resource types). Each repository is the container for all published +versions of its artifact. Use `filter` to narrow by name, artifact type, +or full-text search. ```graphql query { diff --git a/docs/api/graphql/operations/queries/organization.mdx b/docs/api/graphql/operations/queries/organization.mdx index a282606..893d2e8 100644 --- a/docs/api/graphql/operations/queries/organization.mdx +++ b/docs/api/graphql/operations/queries/organization.mdx @@ -94,6 +94,6 @@ graph TD 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. \ No newline at end of file +Administrative fields (`billing`, `members`, `customAttributes`, `settings`) 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. \ No newline at end of file diff --git a/docs/api/graphql/types/enums/oci-artifact-type.mdx b/docs/api/graphql/types/enums/oci-artifact-type.mdx index f045efc..2c9a7c8 100644 --- a/docs/api/graphql/types/enums/oci-artifact-type.mdx +++ b/docs/api/graphql/types/enums/oci-artifact-type.mdx @@ -45,12 +45,13 @@ export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => The kind of artifact stored in an OCI repository. Each value maps to a concrete [OCI artifact type](https://github.com/opencontainers/image-spec/blob/main/manifest.md#guidelines-for-artifact-usage) -media string written to the manifest. Today only `BUNDLE` is supported; additional types will be added as the catalog expands. +media string written to the manifest. Additional types will be added as the catalog expands. ```graphql enum OciArtifactType { BUNDLE + RESOURCE_TYPE } ``` @@ -63,6 +64,10 @@ enum OciArtifactType { Massdriver bundle (`application/vnd.massdriver.bundle.v1+json`). +#### [OciArtifactType.RESOURCE_TYPE](#resource-type) \{#resource-type\} +Massdriver resource type (`application/vnd.massdriver.resource-type.v1+json`). + + diff --git a/docs/api/graphql/types/enums/organization-default-bundle-access.mdx b/docs/api/graphql/types/enums/organization-default-bundle-access.mdx new file mode 100644 index 0000000..85e4e22 --- /dev/null +++ b/docs/api/graphql/types/enums/organization-default-bundle-access.mdx @@ -0,0 +1,77 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: organization-default-bundle-access +title: OrganizationDefaultBundleAccess +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Access granted to new bundle repositories at creation. + +Changing this setting only affects repositories created afterwards — access +to existing repositories is managed through their grants. + + +```graphql +enum OrganizationDefaultBundleAccess { + NONE + ALL_PROJECTS +} +``` + + + + +### Values + +#### [OrganizationDefaultBundleAccess.NONE](#none) \{#none\} +New bundle repositories are restricted until a grant is authored for them. + + +#### [OrganizationDefaultBundleAccess.ALL_PROJECTS](#all-projects) \{#all-projects\} +Every new bundle repository automatically receives an org-wide `repo:pull` grant, making its bundles usable by every project. The grant is a normal grant row: it is listed on the repository and can be revoked with `deleteGrant`. + + + + + + +### Member Of + +[`OrganizationSettings`](/api/graphql/types/objects/organization-settings.mdx) [`UpdateOrganizationSettingsInput`](/api/graphql/types/inputs/update-organization-settings-input.mdx) \ No newline at end of file diff --git a/docs/api/graphql/types/inputs/create-oci-repo-input.mdx b/docs/api/graphql/types/inputs/create-oci-repo-input.mdx index d6124b9..a6d1c0c 100644 --- a/docs/api/graphql/types/inputs/create-oci-repo-input.mdx +++ b/docs/api/graphql/types/inputs/create-oci-repo-input.mdx @@ -59,7 +59,7 @@ input CreateOciRepoInput { ### Fields #### [CreateOciRepoInput.artifactType](#artifact-type)[OciArtifactType!](/api/graphql/types/enums/oci-artifact-type.mdx) \{#artifact-type\} -OCI artifact type stored in this repository. Today only `BUNDLE` is accepted; additional types will be added as Massdriver expands the catalog. +OCI artifact type stored in this repository. `BUNDLE` holds Massdriver bundles; `RESOURCE_TYPE` holds Massdriver resource types. #### [CreateOciRepoInput.attributes](#attributes)[Map](/api/graphql/types/scalars/map.mdx) \{#attributes\} @@ -67,7 +67,7 @@ Key-value attributes for this repository. Used by ABAC policies for fine-grained #### [CreateOciRepoInput.id](#id)[String!](/api/graphql/types/scalars/string.mdx) \{#id\} -Unique repository name within your organization, e.g. `aws-aurora-postgres`. Lowercase letters, numbers, dashes, underscores only. Max 53 characters. Cannot be changed after creation. +Unique repository name within your organization, e.g. `aws-aurora-postgres`. Lowercase letters, numbers, dashes, underscores only. Max 100 characters. Cannot be changed after creation. diff --git a/docs/api/graphql/types/inputs/oci-repos-filter.mdx b/docs/api/graphql/types/inputs/oci-repos-filter.mdx index c26f21f..a02c1f0 100644 --- a/docs/api/graphql/types/inputs/oci-repos-filter.mdx +++ b/docs/api/graphql/types/inputs/oci-repos-filter.mdx @@ -61,7 +61,7 @@ input OciReposFilter { ### Fields #### [OciReposFilter.artifactType](#artifact-type)[String](/api/graphql/types/scalars/string.mdx) \{#artifact-type\} -Filter by OCI artifact media type. Currently the only supported type is `application/vnd.massdriver.bundle.v1+json`. Passing an unsupported type returns an empty list. +Filter by OCI artifact media type. Supported types are `application/vnd.massdriver.bundle.v1+json` and `application/vnd.massdriver.resource-type.v1+json`. When omitted, repositories of every artifact type are returned. Passing an unsupported type returns an empty list. #### [OciReposFilter.name](#name)[OciRepoNameFilter](/api/graphql/types/inputs/oci-repo-name-filter.mdx) \{#name\} diff --git a/docs/api/graphql/types/inputs/update-organization-settings-input.mdx b/docs/api/graphql/types/inputs/update-organization-settings-input.mdx new file mode 100644 index 0000000..e1218ff --- /dev/null +++ b/docs/api/graphql/types/inputs/update-organization-settings-input.mdx @@ -0,0 +1,69 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: update-organization-settings-input +title: UpdateOrganizationSettingsInput +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Change organization-wide behavior settings. Only the settings you provide are changed; omitted settings keep their current values. + + +```graphql +input UpdateOrganizationSettingsInput { + defaultBundleAccess: OrganizationDefaultBundleAccess +} +``` + + + + +### Fields + +#### [UpdateOrganizationSettingsInput.defaultBundleAccess](#default-bundle-access)[OrganizationDefaultBundleAccess](/api/graphql/types/enums/organization-default-bundle-access.mdx) \{#default-bundle-access\} +Access granted to new bundle repositories at creation. NONE keeps each new repository restricted until a grant is authored for it. ALL_PROJECTS automatically creates an org-wide repo:pull grant on each new bundle repository, making its bundles usable by every project. Changing this setting only affects repositories created afterwards. + + + + + + +### Member Of + +[`updateOrganizationSettings`](/api/graphql/operations/mutations/update-organization-settings.mdx) \ No newline at end of file diff --git a/docs/api/graphql/types/objects/bundle-dependency.mdx b/docs/api/graphql/types/objects/bundle-dependency.mdx index cf60f0e..cd251a7 100644 --- a/docs/api/graphql/types/objects/bundle-dependency.mdx +++ b/docs/api/graphql/types/objects/bundle-dependency.mdx @@ -75,7 +75,7 @@ When `true`, this dependency must be connected before the bundle can be deployed #### [BundleDependency.resourceType](#resource-type)[ResourceType](/api/graphql/types/objects/resource-type.mdx) \{#resource-type\} -The resource type this dependency accepts. `null` if the resource type has been removed from the catalog. +The resource type this dependency accepts. `null` if the field is not pinned to a resource type — for example, the type has been removed from the catalog. diff --git a/docs/api/graphql/types/objects/bundle-resource.mdx b/docs/api/graphql/types/objects/bundle-resource.mdx index dbf2b99..b5ad091 100644 --- a/docs/api/graphql/types/objects/bundle-resource.mdx +++ b/docs/api/graphql/types/objects/bundle-resource.mdx @@ -72,7 +72,7 @@ When `true`, this resource is always produced on a successful deployment. #### [BundleResource.resourceType](#resource-type)[ResourceType](/api/graphql/types/objects/resource-type.mdx) \{#resource-type\} -The resource type this output produces. `null` if the resource type has been removed from the catalog. +The resource type this output produces. `null` if the field is not pinned to a resource type — for example, the type has been removed from the catalog. diff --git a/docs/api/graphql/types/objects/oci-repo.mdx b/docs/api/graphql/types/objects/oci-repo.mdx index 637ed8a..648e711 100644 --- a/docs/api/graphql/types/objects/oci-repo.mdx +++ b/docs/api/graphql/types/objects/oci-repo.mdx @@ -117,8 +117,8 @@ oras pull api.massdriver.cloud/acme/aws-aurora-postgres:1.2.3 #### [OciRepo.artifactType](#artifact-type)[String!](/api/graphql/types/scalars/string.mdx) \{#artifact-type\} The [OCI artifact type](https://github.com/opencontainers/image-spec/blob/main/manifest.md#guidelines-for-artifact-usage) -stored in this repository. Currently always -`application/vnd.massdriver.bundle.v1+json`. +stored in this repository — `application/vnd.massdriver.bundle.v1+json` or +`application/vnd.massdriver.resource-type.v1+json`. #### [OciRepo.attributes](#attributes)[Map!](/api/graphql/types/scalars/map.mdx) \{#attributes\} diff --git a/docs/api/graphql/types/objects/organization-payload.mdx b/docs/api/graphql/types/objects/organization-payload.mdx index 5594565..d6610a9 100644 --- a/docs/api/graphql/types/objects/organization-payload.mdx +++ b/docs/api/graphql/types/objects/organization-payload.mdx @@ -76,4 +76,4 @@ The object created/updated/deleted by the mutation. May be null if mutation fail ### Returned By -[`createOrganization`](/api/graphql/operations/mutations/create-organization.mdx) [`updateOrganization`](/api/graphql/operations/mutations/update-organization.mdx) \ No newline at end of file +[`createOrganization`](/api/graphql/operations/mutations/create-organization.mdx) [`updateOrganization`](/api/graphql/operations/mutations/update-organization.mdx) [`updateOrganizationSettings`](/api/graphql/operations/mutations/update-organization-settings.mdx) \ No newline at end of file diff --git a/docs/api/graphql/types/objects/organization-settings.mdx b/docs/api/graphql/types/objects/organization-settings.mdx new file mode 100644 index 0000000..1e7c93c --- /dev/null +++ b/docs/api/graphql/types/objects/organization-settings.mdx @@ -0,0 +1,74 @@ +--- +pagination_next: null +pagination_prev: null +hide_table_of_contents: true +id: organization-settings +title: OrganizationSettings +--- + + + + +export const Bullet = () => <> ●  + +export const SpecifiedBy = (props) => <>Specification + +export const Badge = (props) => <>{props.text} + +import { useState } from 'react'; + +export const Details = ({ dataOpen, dataClose, children, startOpen = false }) => { + const [open, setOpen] = useState(startOpen); + return ( +
+ { + e.preventDefault(); + setOpen((open) => !open); + }} + style={{ listStyle:'none' }} + > + {open ? dataOpen : dataClose} + + {open && children} +
+ ); +}; + + + + + + + + +Organization-wide behavior settings. + +Settings apply to the whole organization and shape platform behavior — for +example, the access new bundle repositories receive at creation. Each setting +has a default, so organizations created before a setting existed read it as +the default. Change settings with the `updateOrganizationSettings` mutation. + + +```graphql +type OrganizationSettings { + defaultBundleAccess: OrganizationDefaultBundleAccess! +} +``` + + + + +### Fields + +#### [OrganizationSettings.defaultBundleAccess](#default-bundle-access)[OrganizationDefaultBundleAccess!](/api/graphql/types/enums/organization-default-bundle-access.mdx) \{#default-bundle-access\} +Access granted to new bundle repositories at creation. Defaults to `NONE` — new repositories are restricted until a grant is authored for them. + + + + + + +### Member Of + +[`Organization`](/api/graphql/types/objects/organization.mdx) \ No newline at end of file diff --git a/docs/api/graphql/types/objects/organization.mdx b/docs/api/graphql/types/objects/organization.mdx index 357502b..d76bbe2 100644 --- a/docs/api/graphql/types/objects/organization.mdx +++ b/docs/api/graphql/types/objects/organization.mdx @@ -62,9 +62,9 @@ graph TD 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. +Administrative fields (`billing`, `members`, `customAttributes`, `settings`) 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. ```graphql @@ -85,6 +85,7 @@ type Organization { cursor: Cursor ): CustomAttributesPage billing: OrganizationBilling + settings: OrganizationSettings } ``` @@ -168,6 +169,13 @@ Requires the `organization:manageBilling` action. The non-sensitive `subscriptionStatus` field at the top of the type stays visible to every member. +#### [Organization.settings](#settings)[OrganizationSettings](/api/graphql/types/objects/organization-settings.mdx) \{#settings\} +Organization-wide behavior settings. + +Requires the `organization:manageSettings` action. Change settings with the +`updateOrganizationSettings` mutation. + + diff --git a/docs/api/graphql/types/scalars/id.mdx b/docs/api/graphql/types/scalars/id.mdx index 92f64b3..6e1fc7f 100644 --- a/docs/api/graphql/types/scalars/id.mdx +++ b/docs/api/graphql/types/scalars/id.mdx @@ -58,4 +58,4 @@ scalar ID ### Member Of -[`abortDeployment`](/api/graphql/operations/mutations/abort-deployment.mdx) [`AccessToken`](/api/graphql/types/objects/access-token.mdx) [`accessTokens`](/api/graphql/operations/queries/access-tokens.mdx) [`AccessTokenWithValue`](/api/graphql/types/objects/access-token-with-value.mdx) [`Account`](/api/graphql/types/objects/account.mdx) [`AccountIdentityViewer`](/api/graphql/types/objects/account-identity-viewer.mdx) [`AccountViewer`](/api/graphql/types/objects/account-viewer.mdx) [`addAccountToGroup`](/api/graphql/operations/mutations/add-account-to-group.mdx) [`addComponent`](/api/graphql/operations/mutations/add-component.mdx) [`addServiceAccountToGroup`](/api/graphql/operations/mutations/add-service-account-to-group.mdx) [`Alarm`](/api/graphql/types/objects/alarm.mdx) [`AlarmState`](/api/graphql/types/objects/alarm-state.mdx) [`approveDeployment`](/api/graphql/operations/mutations/approve-deployment.mdx) [`auditLog`](/api/graphql/operations/queries/audit-log.mdx) [`AuditLog`](/api/graphql/types/objects/audit-log.mdx) [`AuditLogActor`](/api/graphql/types/objects/audit-log-actor.mdx) [`auditLogEventTypes`](/api/graphql/operations/queries/audit-log-event-types.mdx) [`auditLogs`](/api/graphql/operations/queries/audit-logs.mdx) [`AvatarViewer`](/api/graphql/types/objects/avatar-viewer.mdx) [`bundle`](/api/graphql/operations/queries/bundle.mdx) [`cloneProject`](/api/graphql/operations/mutations/clone-project.mdx) [`compareDeployments`](/api/graphql/operations/queries/compare-deployments.mdx) [`compareEnvironments`](/api/graphql/operations/queries/compare-environments.mdx) [`component`](/api/graphql/operations/queries/component.mdx) [`Component`](/api/graphql/types/objects/component.mdx) [`Connection`](/api/graphql/types/objects/connection.mdx) [`copyInstance`](/api/graphql/operations/mutations/copy-instance.mdx) [`createAccessToken`](/api/graphql/operations/mutations/create-access-token.mdx) [`createCustomAttribute`](/api/graphql/operations/mutations/create-custom-attribute.mdx) [`createDeployment`](/api/graphql/operations/mutations/create-deployment.mdx) [`createEnvironment`](/api/graphql/operations/mutations/create-environment.mdx) [`createGroup`](/api/graphql/operations/mutations/create-group.mdx) [`createGroupPolicy`](/api/graphql/operations/mutations/create-group-policy.mdx) [`createInstanceAlarm`](/api/graphql/operations/mutations/create-instance-alarm.mdx) [`createIntegration`](/api/graphql/operations/mutations/create-integration.mdx) [`createOciRepo`](/api/graphql/operations/mutations/create-oci-repo.mdx) [`createProject`](/api/graphql/operations/mutations/create-project.mdx) [`createRepoGrant`](/api/graphql/operations/mutations/create-repo-grant.mdx) [`createResource`](/api/graphql/operations/mutations/create-resource.mdx) [`createResourceGrant`](/api/graphql/operations/mutations/create-resource-grant.mdx) [`createServiceAccount`](/api/graphql/operations/mutations/create-service-account.mdx) [`CustomAttribute`](/api/graphql/types/objects/custom-attribute.mdx) [`customAttributeSchema`](/api/graphql/operations/queries/custom-attribute-schema.mdx) [`customAttributeValues`](/api/graphql/operations/queries/custom-attribute-values.mdx) [`decommissionEnvironment`](/api/graphql/operations/mutations/decommission-environment.mdx) [`deleteCustomAttribute`](/api/graphql/operations/mutations/delete-custom-attribute.mdx) [`deleteEnvironment`](/api/graphql/operations/mutations/delete-environment.mdx) [`deleteGrant`](/api/graphql/operations/mutations/delete-grant.mdx) [`deleteGroup`](/api/graphql/operations/mutations/delete-group.mdx) [`deleteGroupInvitation`](/api/graphql/operations/mutations/delete-group-invitation.mdx) [`deleteGroupMember`](/api/graphql/operations/mutations/delete-group-member.mdx) [`deleteInstanceAlarm`](/api/graphql/operations/mutations/delete-instance-alarm.mdx) [`deleteIntegration`](/api/graphql/operations/mutations/delete-integration.mdx) [`deleteOciRepo`](/api/graphql/operations/mutations/delete-oci-repo.mdx) [`deleteOrganizationMember`](/api/graphql/operations/mutations/delete-organization-member.mdx) [`deletePolicy`](/api/graphql/operations/mutations/delete-policy.mdx) [`deleteProject`](/api/graphql/operations/mutations/delete-project.mdx) [`deleteResource`](/api/graphql/operations/mutations/delete-resource.mdx) [`deleteResourceType`](/api/graphql/deprecated/operations/mutations/delete-resource-type.mdx) [`deleteServiceAccount`](/api/graphql/operations/mutations/delete-service-account.mdx) [`deployEnvironment`](/api/graphql/operations/mutations/deploy-environment.mdx) [`deployment`](/api/graphql/operations/queries/deployment.mdx) [`Deployment`](/api/graphql/types/objects/deployment.mdx) [`deploymentEvents`](/api/graphql/operations/subscriptions/deployment-events.mdx) [`deploymentLogs`](/api/graphql/operations/subscriptions/deployment-logs.mdx) [`deployments`](/api/graphql/operations/queries/deployments.mdx) [`disableIntegration`](/api/graphql/operations/mutations/disable-integration.mdx) [`enableIntegration`](/api/graphql/operations/mutations/enable-integration.mdx) [`environment`](/api/graphql/operations/queries/environment.mdx) [`Environment`](/api/graphql/types/objects/environment.mdx) [`EnvironmentDefault`](/api/graphql/types/objects/environment-default.mdx) [`EnvironmentDefaultResource`](/api/graphql/types/objects/environment-default-resource.mdx) [`environmentEvents`](/api/graphql/operations/subscriptions/environment-events.mdx) [`environments`](/api/graphql/operations/queries/environments.mdx) [`evaluatePolicies`](/api/graphql/operations/queries/evaluate-policies.mdx) [`evaluatePolicy`](/api/graphql/operations/queries/evaluate-policy.mdx) [`EventType`](/api/graphql/types/objects/event-type.mdx) [`eventTypes`](/api/graphql/operations/queries/event-types.mdx) [`explainPolicy`](/api/graphql/operations/queries/explain-policy.mdx) [`exportResource`](/api/graphql/operations/mutations/export-resource.mdx) [`forkEnvironment`](/api/graphql/operations/mutations/fork-environment.mdx) [`Grant`](/api/graphql/types/objects/grant.mdx) [`group`](/api/graphql/operations/queries/group.mdx) [`Group`](/api/graphql/types/objects/group.mdx) [`GroupInvitation`](/api/graphql/types/objects/group-invitation.mdx) [`groupPolicy`](/api/graphql/operations/queries/group-policy.mdx) [`groups`](/api/graphql/operations/queries/groups.mdx) [`IdFilter`](/api/graphql/types/inputs/id-filter.mdx) [`instance`](/api/graphql/operations/queries/instance.mdx) [`Instance`](/api/graphql/types/objects/instance.mdx) [`instanceAlarm`](/api/graphql/operations/queries/instance-alarm.mdx) [`instanceAlarms`](/api/graphql/operations/queries/instance-alarms.mdx) [`instanceEvents`](/api/graphql/operations/subscriptions/instance-events.mdx) [`instances`](/api/graphql/operations/queries/instances.mdx) [`integration`](/api/graphql/operations/queries/integration.mdx) [`Integration`](/api/graphql/types/objects/integration.mdx) [`IntegrationActivation`](/api/graphql/types/objects/integration-activation.mdx) [`integrations`](/api/graphql/operations/queries/integrations.mdx) [`integrationTypes`](/api/graphql/operations/queries/integration-types.mdx) [`InviteGroupViewer`](/api/graphql/types/objects/invite-group-viewer.mdx) [`InviteOrganizationViewer`](/api/graphql/types/objects/invite-organization-viewer.mdx) [`InviteViewer`](/api/graphql/types/objects/invite-viewer.mdx) [`Link`](/api/graphql/types/objects/link.mdx) [`linkComponents`](/api/graphql/operations/mutations/link-components.mdx) [`LinkComponentsInput`](/api/graphql/types/inputs/link-components-input.mdx) [`LoginSessionViewer`](/api/graphql/types/objects/login-session-viewer.mdx) [`LogoOrganization`](/api/graphql/types/objects/logo-organization.mdx) [`ociRepo`](/api/graphql/operations/queries/oci-repo.mdx) [`OciRepo`](/api/graphql/types/objects/oci-repo.mdx) [`ociRepos`](/api/graphql/operations/queries/oci-repos.mdx) [`organization`](/api/graphql/operations/queries/organization.mdx) [`Organization`](/api/graphql/types/objects/organization.mdx) [`organizationEvents`](/api/graphql/operations/subscriptions/organization-events.mdx) [`orphanInstance`](/api/graphql/operations/mutations/orphan-instance.mdx) [`paramDimensions`](/api/graphql/operations/queries/param-dimensions.mdx) [`planDeployment`](/api/graphql/operations/mutations/plan-deployment.mdx) [`Policy`](/api/graphql/types/objects/policy.mdx) [`PolicyAction`](/api/graphql/types/objects/policy-action.mdx) [`policyActions`](/api/graphql/operations/queries/policy-actions.mdx) [`PolicyDecision`](/api/graphql/types/objects/policy-decision.mdx) [`PolicyDecisionInput`](/api/graphql/types/inputs/policy-decision-input.mdx) [`policyEntities`](/api/graphql/operations/queries/policy-entities.mdx) [`PolicyEntity`](/api/graphql/types/objects/policy-entity.mdx) [`project`](/api/graphql/operations/queries/project.mdx) [`Project`](/api/graphql/types/objects/project.mdx) [`projectEvents`](/api/graphql/operations/subscriptions/project-events.mdx) [`projects`](/api/graphql/operations/queries/projects.mdx) [`proposeDeployment`](/api/graphql/operations/mutations/propose-deployment.mdx) [`ProvisioningOrganizationViewer`](/api/graphql/types/objects/provisioning-organization-viewer.mdx) [`publishResourceType`](/api/graphql/deprecated/operations/mutations/publish-resource-type.mdx) [`rejectDeployment`](/api/graphql/operations/mutations/reject-deployment.mdx) [`RemoteReference`](/api/graphql/types/objects/remote-reference.mdx) [`removeComponent`](/api/graphql/operations/mutations/remove-component.mdx) [`removeEnvironmentDefault`](/api/graphql/operations/mutations/remove-environment-default.mdx) [`removeInstanceSecret`](/api/graphql/operations/mutations/remove-instance-secret.mdx) [`removeOrganizationLogo`](/api/graphql/operations/mutations/remove-organization-logo.mdx) [`removeRemoteReference`](/api/graphql/operations/mutations/remove-remote-reference.mdx) [`removeServiceAccountFromGroup`](/api/graphql/operations/mutations/remove-service-account-from-group.mdx) [`resource`](/api/graphql/operations/queries/resource.mdx) [`Resource`](/api/graphql/types/objects/resource.mdx) [`resources`](/api/graphql/operations/queries/resources.mdx) [`resourceType`](/api/graphql/operations/queries/resource-type.mdx) [`ResourceType`](/api/graphql/types/objects/resource-type.mdx) [`resourceTypes`](/api/graphql/operations/queries/resource-types.mdx) [`ResourceWithSensitiveValues`](/api/graphql/types/objects/resource-with-sensitive-values.mdx) [`revokeAccessToken`](/api/graphql/operations/mutations/revoke-access-token.mdx) [`rollbackDeployment`](/api/graphql/operations/mutations/rollback-deployment.mdx) [`ScimProvisioningViewer`](/api/graphql/types/objects/scim-provisioning-viewer.mdx) [`serviceAccount`](/api/graphql/operations/queries/service-account.mdx) [`ServiceAccount`](/api/graphql/types/objects/service-account.mdx) [`serviceAccounts`](/api/graphql/operations/queries/service-accounts.mdx) [`ServiceAccountViewer`](/api/graphql/types/objects/service-account-viewer.mdx) [`ServiceAccountWithDefaultAccessToken`](/api/graphql/types/objects/service-account-with-default-access-token.mdx) [`setComponentPosition`](/api/graphql/operations/mutations/set-component-position.mdx) [`setEnvironmentDefault`](/api/graphql/operations/mutations/set-environment-default.mdx) [`setInstanceSecret`](/api/graphql/operations/mutations/set-instance-secret.mdx) [`setOrganizationLogo`](/api/graphql/operations/mutations/set-organization-logo.mdx) [`setRemoteReference`](/api/graphql/operations/mutations/set-remote-reference.mdx) [`unlinkComponents`](/api/graphql/operations/mutations/unlink-components.mdx) [`updateComponent`](/api/graphql/operations/mutations/update-component.mdx) [`updateCustomAttribute`](/api/graphql/operations/mutations/update-custom-attribute.mdx) [`updateEnvironment`](/api/graphql/operations/mutations/update-environment.mdx) [`updateGroup`](/api/graphql/operations/mutations/update-group.mdx) [`updateInstance`](/api/graphql/operations/mutations/update-instance.mdx) [`updateInstanceAlarm`](/api/graphql/operations/mutations/update-instance-alarm.mdx) [`updateOciRepo`](/api/graphql/operations/mutations/update-oci-repo.mdx) [`updateOrganization`](/api/graphql/operations/mutations/update-organization.mdx) [`updatePolicy`](/api/graphql/operations/mutations/update-policy.mdx) [`updateProject`](/api/graphql/operations/mutations/update-project.mdx) [`updateResource`](/api/graphql/operations/mutations/update-resource.mdx) [`updateServiceAccount`](/api/graphql/operations/mutations/update-service-account.mdx) \ No newline at end of file +[`abortDeployment`](/api/graphql/operations/mutations/abort-deployment.mdx) [`AccessToken`](/api/graphql/types/objects/access-token.mdx) [`accessTokens`](/api/graphql/operations/queries/access-tokens.mdx) [`AccessTokenWithValue`](/api/graphql/types/objects/access-token-with-value.mdx) [`Account`](/api/graphql/types/objects/account.mdx) [`AccountIdentityViewer`](/api/graphql/types/objects/account-identity-viewer.mdx) [`AccountViewer`](/api/graphql/types/objects/account-viewer.mdx) [`addAccountToGroup`](/api/graphql/operations/mutations/add-account-to-group.mdx) [`addComponent`](/api/graphql/operations/mutations/add-component.mdx) [`addServiceAccountToGroup`](/api/graphql/operations/mutations/add-service-account-to-group.mdx) [`Alarm`](/api/graphql/types/objects/alarm.mdx) [`AlarmState`](/api/graphql/types/objects/alarm-state.mdx) [`approveDeployment`](/api/graphql/operations/mutations/approve-deployment.mdx) [`auditLog`](/api/graphql/operations/queries/audit-log.mdx) [`AuditLog`](/api/graphql/types/objects/audit-log.mdx) [`AuditLogActor`](/api/graphql/types/objects/audit-log-actor.mdx) [`auditLogEventTypes`](/api/graphql/operations/queries/audit-log-event-types.mdx) [`auditLogs`](/api/graphql/operations/queries/audit-logs.mdx) [`AvatarViewer`](/api/graphql/types/objects/avatar-viewer.mdx) [`bundle`](/api/graphql/operations/queries/bundle.mdx) [`cloneProject`](/api/graphql/operations/mutations/clone-project.mdx) [`compareDeployments`](/api/graphql/operations/queries/compare-deployments.mdx) [`compareEnvironments`](/api/graphql/operations/queries/compare-environments.mdx) [`component`](/api/graphql/operations/queries/component.mdx) [`Component`](/api/graphql/types/objects/component.mdx) [`Connection`](/api/graphql/types/objects/connection.mdx) [`copyInstance`](/api/graphql/operations/mutations/copy-instance.mdx) [`createAccessToken`](/api/graphql/operations/mutations/create-access-token.mdx) [`createCustomAttribute`](/api/graphql/operations/mutations/create-custom-attribute.mdx) [`createDeployment`](/api/graphql/operations/mutations/create-deployment.mdx) [`createEnvironment`](/api/graphql/operations/mutations/create-environment.mdx) [`createGroup`](/api/graphql/operations/mutations/create-group.mdx) [`createGroupPolicy`](/api/graphql/operations/mutations/create-group-policy.mdx) [`createInstanceAlarm`](/api/graphql/operations/mutations/create-instance-alarm.mdx) [`createIntegration`](/api/graphql/operations/mutations/create-integration.mdx) [`createOciRepo`](/api/graphql/operations/mutations/create-oci-repo.mdx) [`createProject`](/api/graphql/operations/mutations/create-project.mdx) [`createRepoGrant`](/api/graphql/operations/mutations/create-repo-grant.mdx) [`createResource`](/api/graphql/operations/mutations/create-resource.mdx) [`createResourceGrant`](/api/graphql/operations/mutations/create-resource-grant.mdx) [`createServiceAccount`](/api/graphql/operations/mutations/create-service-account.mdx) [`CustomAttribute`](/api/graphql/types/objects/custom-attribute.mdx) [`customAttributeSchema`](/api/graphql/operations/queries/custom-attribute-schema.mdx) [`customAttributeValues`](/api/graphql/operations/queries/custom-attribute-values.mdx) [`decommissionEnvironment`](/api/graphql/operations/mutations/decommission-environment.mdx) [`deleteCustomAttribute`](/api/graphql/operations/mutations/delete-custom-attribute.mdx) [`deleteEnvironment`](/api/graphql/operations/mutations/delete-environment.mdx) [`deleteGrant`](/api/graphql/operations/mutations/delete-grant.mdx) [`deleteGroup`](/api/graphql/operations/mutations/delete-group.mdx) [`deleteGroupInvitation`](/api/graphql/operations/mutations/delete-group-invitation.mdx) [`deleteGroupMember`](/api/graphql/operations/mutations/delete-group-member.mdx) [`deleteInstanceAlarm`](/api/graphql/operations/mutations/delete-instance-alarm.mdx) [`deleteIntegration`](/api/graphql/operations/mutations/delete-integration.mdx) [`deleteOciRepo`](/api/graphql/operations/mutations/delete-oci-repo.mdx) [`deleteOrganizationMember`](/api/graphql/operations/mutations/delete-organization-member.mdx) [`deletePolicy`](/api/graphql/operations/mutations/delete-policy.mdx) [`deleteProject`](/api/graphql/operations/mutations/delete-project.mdx) [`deleteResource`](/api/graphql/operations/mutations/delete-resource.mdx) [`deleteResourceType`](/api/graphql/deprecated/operations/mutations/delete-resource-type.mdx) [`deleteServiceAccount`](/api/graphql/operations/mutations/delete-service-account.mdx) [`deployEnvironment`](/api/graphql/operations/mutations/deploy-environment.mdx) [`deployment`](/api/graphql/operations/queries/deployment.mdx) [`Deployment`](/api/graphql/types/objects/deployment.mdx) [`deploymentEvents`](/api/graphql/operations/subscriptions/deployment-events.mdx) [`deploymentLogs`](/api/graphql/operations/subscriptions/deployment-logs.mdx) [`deployments`](/api/graphql/operations/queries/deployments.mdx) [`disableIntegration`](/api/graphql/operations/mutations/disable-integration.mdx) [`enableIntegration`](/api/graphql/operations/mutations/enable-integration.mdx) [`environment`](/api/graphql/operations/queries/environment.mdx) [`Environment`](/api/graphql/types/objects/environment.mdx) [`EnvironmentDefault`](/api/graphql/types/objects/environment-default.mdx) [`EnvironmentDefaultResource`](/api/graphql/types/objects/environment-default-resource.mdx) [`environmentEvents`](/api/graphql/operations/subscriptions/environment-events.mdx) [`environments`](/api/graphql/operations/queries/environments.mdx) [`evaluatePolicies`](/api/graphql/operations/queries/evaluate-policies.mdx) [`evaluatePolicy`](/api/graphql/operations/queries/evaluate-policy.mdx) [`EventType`](/api/graphql/types/objects/event-type.mdx) [`eventTypes`](/api/graphql/operations/queries/event-types.mdx) [`explainPolicy`](/api/graphql/operations/queries/explain-policy.mdx) [`exportResource`](/api/graphql/operations/mutations/export-resource.mdx) [`forkEnvironment`](/api/graphql/operations/mutations/fork-environment.mdx) [`Grant`](/api/graphql/types/objects/grant.mdx) [`group`](/api/graphql/operations/queries/group.mdx) [`Group`](/api/graphql/types/objects/group.mdx) [`GroupInvitation`](/api/graphql/types/objects/group-invitation.mdx) [`groupPolicy`](/api/graphql/operations/queries/group-policy.mdx) [`groups`](/api/graphql/operations/queries/groups.mdx) [`IdFilter`](/api/graphql/types/inputs/id-filter.mdx) [`instance`](/api/graphql/operations/queries/instance.mdx) [`Instance`](/api/graphql/types/objects/instance.mdx) [`instanceAlarm`](/api/graphql/operations/queries/instance-alarm.mdx) [`instanceAlarms`](/api/graphql/operations/queries/instance-alarms.mdx) [`instanceEvents`](/api/graphql/operations/subscriptions/instance-events.mdx) [`instances`](/api/graphql/operations/queries/instances.mdx) [`integration`](/api/graphql/operations/queries/integration.mdx) [`Integration`](/api/graphql/types/objects/integration.mdx) [`IntegrationActivation`](/api/graphql/types/objects/integration-activation.mdx) [`integrations`](/api/graphql/operations/queries/integrations.mdx) [`integrationTypes`](/api/graphql/operations/queries/integration-types.mdx) [`InviteGroupViewer`](/api/graphql/types/objects/invite-group-viewer.mdx) [`InviteOrganizationViewer`](/api/graphql/types/objects/invite-organization-viewer.mdx) [`InviteViewer`](/api/graphql/types/objects/invite-viewer.mdx) [`Link`](/api/graphql/types/objects/link.mdx) [`linkComponents`](/api/graphql/operations/mutations/link-components.mdx) [`LinkComponentsInput`](/api/graphql/types/inputs/link-components-input.mdx) [`LoginSessionViewer`](/api/graphql/types/objects/login-session-viewer.mdx) [`LogoOrganization`](/api/graphql/types/objects/logo-organization.mdx) [`ociRepo`](/api/graphql/operations/queries/oci-repo.mdx) [`OciRepo`](/api/graphql/types/objects/oci-repo.mdx) [`ociRepos`](/api/graphql/operations/queries/oci-repos.mdx) [`organization`](/api/graphql/operations/queries/organization.mdx) [`Organization`](/api/graphql/types/objects/organization.mdx) [`organizationEvents`](/api/graphql/operations/subscriptions/organization-events.mdx) [`orphanInstance`](/api/graphql/operations/mutations/orphan-instance.mdx) [`paramDimensions`](/api/graphql/operations/queries/param-dimensions.mdx) [`planDeployment`](/api/graphql/operations/mutations/plan-deployment.mdx) [`Policy`](/api/graphql/types/objects/policy.mdx) [`PolicyAction`](/api/graphql/types/objects/policy-action.mdx) [`policyActions`](/api/graphql/operations/queries/policy-actions.mdx) [`PolicyDecision`](/api/graphql/types/objects/policy-decision.mdx) [`PolicyDecisionInput`](/api/graphql/types/inputs/policy-decision-input.mdx) [`policyEntities`](/api/graphql/operations/queries/policy-entities.mdx) [`PolicyEntity`](/api/graphql/types/objects/policy-entity.mdx) [`project`](/api/graphql/operations/queries/project.mdx) [`Project`](/api/graphql/types/objects/project.mdx) [`projectEvents`](/api/graphql/operations/subscriptions/project-events.mdx) [`projects`](/api/graphql/operations/queries/projects.mdx) [`proposeDeployment`](/api/graphql/operations/mutations/propose-deployment.mdx) [`ProvisioningOrganizationViewer`](/api/graphql/types/objects/provisioning-organization-viewer.mdx) [`publishResourceType`](/api/graphql/deprecated/operations/mutations/publish-resource-type.mdx) [`rejectDeployment`](/api/graphql/operations/mutations/reject-deployment.mdx) [`RemoteReference`](/api/graphql/types/objects/remote-reference.mdx) [`removeComponent`](/api/graphql/operations/mutations/remove-component.mdx) [`removeEnvironmentDefault`](/api/graphql/operations/mutations/remove-environment-default.mdx) [`removeInstanceSecret`](/api/graphql/operations/mutations/remove-instance-secret.mdx) [`removeOrganizationLogo`](/api/graphql/operations/mutations/remove-organization-logo.mdx) [`removeRemoteReference`](/api/graphql/operations/mutations/remove-remote-reference.mdx) [`removeServiceAccountFromGroup`](/api/graphql/operations/mutations/remove-service-account-from-group.mdx) [`resource`](/api/graphql/operations/queries/resource.mdx) [`Resource`](/api/graphql/types/objects/resource.mdx) [`resources`](/api/graphql/operations/queries/resources.mdx) [`resourceType`](/api/graphql/operations/queries/resource-type.mdx) [`ResourceType`](/api/graphql/types/objects/resource-type.mdx) [`resourceTypes`](/api/graphql/operations/queries/resource-types.mdx) [`ResourceWithSensitiveValues`](/api/graphql/types/objects/resource-with-sensitive-values.mdx) [`revokeAccessToken`](/api/graphql/operations/mutations/revoke-access-token.mdx) [`rollbackDeployment`](/api/graphql/operations/mutations/rollback-deployment.mdx) [`ScimProvisioningViewer`](/api/graphql/types/objects/scim-provisioning-viewer.mdx) [`serviceAccount`](/api/graphql/operations/queries/service-account.mdx) [`ServiceAccount`](/api/graphql/types/objects/service-account.mdx) [`serviceAccounts`](/api/graphql/operations/queries/service-accounts.mdx) [`ServiceAccountViewer`](/api/graphql/types/objects/service-account-viewer.mdx) [`ServiceAccountWithDefaultAccessToken`](/api/graphql/types/objects/service-account-with-default-access-token.mdx) [`setComponentPosition`](/api/graphql/operations/mutations/set-component-position.mdx) [`setEnvironmentDefault`](/api/graphql/operations/mutations/set-environment-default.mdx) [`setInstanceSecret`](/api/graphql/operations/mutations/set-instance-secret.mdx) [`setOrganizationLogo`](/api/graphql/operations/mutations/set-organization-logo.mdx) [`setRemoteReference`](/api/graphql/operations/mutations/set-remote-reference.mdx) [`unlinkComponents`](/api/graphql/operations/mutations/unlink-components.mdx) [`updateComponent`](/api/graphql/operations/mutations/update-component.mdx) [`updateCustomAttribute`](/api/graphql/operations/mutations/update-custom-attribute.mdx) [`updateEnvironment`](/api/graphql/operations/mutations/update-environment.mdx) [`updateGroup`](/api/graphql/operations/mutations/update-group.mdx) [`updateInstance`](/api/graphql/operations/mutations/update-instance.mdx) [`updateInstanceAlarm`](/api/graphql/operations/mutations/update-instance-alarm.mdx) [`updateOciRepo`](/api/graphql/operations/mutations/update-oci-repo.mdx) [`updateOrganization`](/api/graphql/operations/mutations/update-organization.mdx) [`updateOrganizationSettings`](/api/graphql/operations/mutations/update-organization-settings.mdx) [`updatePolicy`](/api/graphql/operations/mutations/update-policy.mdx) [`updateProject`](/api/graphql/operations/mutations/update-project.mdx) [`updateResource`](/api/graphql/operations/mutations/update-resource.mdx) [`updateServiceAccount`](/api/graphql/operations/mutations/update-service-account.mdx) \ No newline at end of file diff --git a/schema/schema.graphql b/schema/schema.graphql index 8697523..b95f310 100644 --- a/schema/schema.graphql +++ b/schema/schema.graphql @@ -395,9 +395,10 @@ type RootQueryType { """ List OCI repositories in your organization's bundle catalog. - Returns a paginated list of repositories. Each repository is the container - for all published versions of a bundle. Use `filter` to narrow by name, - artifact type, or full-text search. + Returns a paginated list of repositories of every artifact type (bundles + and resource types). Each repository is the container for all published + versions of its artifact. Use `filter` to narrow by name, artifact type, + or full-text search. ```graphql query { @@ -1892,6 +1893,20 @@ type RootMutationType { input: UpdateOrganizationInput! ): OrganizationPayload @inputs(name: "updateOrganization", schema: "\/graphql\/v2\/inputs\/updateOrganization.json", ui: "\/graphql\/v2\/inputs\/updateOrganization.ui.json") + """ + Change organization-wide behavior settings. + + Only the settings you provide are changed; omitted settings keep their + current values. Requires the `organization:manageSettings` action. + """ + updateOrganizationSettings( + "Your organization's unique identifier." + organizationId: ID! + + "Change organization-wide behavior settings. Only the settings you provide are changed; omitted settings keep their current values." + input: UpdateOrganizationSettingsInput! + ): OrganizationPayload @inputs(name: "updateOrganizationSettings", schema: "\/graphql\/v2\/inputs\/updateOrganizationSettings.json", ui: "\/graphql\/v2\/inputs\/updateOrganizationSettings.ui.json") + """ Upload or replace your organization's logo. @@ -5308,6 +5323,12 @@ input UpdateOrganizationInput { name: String! } +"Change organization-wide behavior settings. Only the settings you provide are changed; omitted settings keep their current values." +input UpdateOrganizationSettingsInput { + "Access granted to new bundle repositories at creation. NONE keeps each new repository restricted until a grant is authored for it. ALL_PROJECTS automatically creates an org-wide repo:pull grant on each new bundle repository, making its bundles usable by every project. Changing this setting only affects repositories created afterwards." + defaultBundleAccess: OrganizationDefaultBundleAccess +} + """ Subscription status for an organization. @@ -5341,6 +5362,20 @@ enum OrganizationSubscriptionStatus { PAYMENT_FAILED } +""" +Access granted to new bundle repositories at creation. + +Changing this setting only affects repositories created afterwards — access +to existing repositories is managed through their grants. +""" +enum OrganizationDefaultBundleAccess { + "New bundle repositories are restricted until a grant is authored for them." + NONE + + "Every new bundle repository automatically receives an org-wide `repo:pull` grant, making its bundles usable by every project. The grant is a normal grant row: it is listed on the repository and can be revoked with `deleteGrant`." + ALL_PROJECTS +} + "Available fields for sorting organizations." enum OrganizationsSortField { "Sort alphabetically by organization name (A-Z or Z-A)." @@ -5380,9 +5415,9 @@ graph TD 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. +Administrative fields (`billing`, `members`, `customAttributes`, `settings`) 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! @@ -5460,6 +5495,27 @@ type Organization { `subscriptionStatus` field at the top of the type stays visible to every member. """ billing: OrganizationBilling + + """ + Organization-wide behavior settings. + + Requires the `organization:manageSettings` action. Change settings with the + `updateOrganizationSettings` mutation. + """ + settings: OrganizationSettings +} + +""" +Organization-wide behavior settings. + +Settings apply to the whole organization and shape platform behavior — for +example, the access new bundle repositories receive at creation. Each setting +has a default, so organizations created before a setting existed read it as +the default. Change settings with the `updateOrganizationSettings` mutation. +""" +type OrganizationSettings { + "Access granted to new bundle repositories at creation. Defaults to `NONE` — new repositories are restricted until a grant is authored for them." + defaultBundleAccess: OrganizationDefaultBundleAccess! } "Confirmation payload returned after removing a member from the organization." @@ -8239,7 +8295,7 @@ type BundleDependency { "When `true`, this dependency must be connected before the bundle can be deployed." required: Boolean! - "The resource type this dependency accepts. `null` if the resource type has been removed from the catalog." + "The resource type this dependency accepts. `null` if the field is not pinned to a resource type — for example, the type has been removed from the catalog." resourceType: ResourceType } @@ -8258,7 +8314,7 @@ type BundleResource { "When `true`, this resource is always produced on a successful deployment." required: Boolean! - "The resource type this output produces. `null` if the resource type has been removed from the catalog." + "The resource type this output produces. `null` if the field is not pinned to a resource type — for example, the type has been removed from the catalog." resourceType: ResourceType } @@ -8364,11 +8420,14 @@ scalar OciRepoName The kind of artifact stored in an OCI repository. Each value maps to a concrete [OCI artifact type](https://github.com/opencontainers/image-spec/blob/main/manifest.md#guidelines-for-artifact-usage) -media string written to the manifest. Today only `BUNDLE` is supported; additional types will be added as the catalog expands. +media string written to the manifest. Additional types will be added as the catalog expands. """ enum OciArtifactType { "Massdriver bundle (`application\/vnd.massdriver.bundle.v1+json`)." BUNDLE + + "Massdriver resource type (`application\/vnd.massdriver.resource-type.v1+json`)." + RESOURCE_TYPE } """ @@ -8408,13 +8467,13 @@ enum OciFilesSortField { "Create a new OCI repository in your organization's catalog. Repositories must exist before any version can be published to them." input CreateOciRepoInput { - "OCI artifact type stored in this repository. Today only `BUNDLE` is accepted; additional types will be added as Massdriver expands the catalog." + "OCI artifact type stored in this repository. `BUNDLE` holds Massdriver bundles; `RESOURCE_TYPE` holds Massdriver resource types." artifactType: OciArtifactType! "Key-value attributes for this repository. Used by ABAC policies for fine-grained access control. Reserved `md-*` keys are rejected. Must conform to the organization's custom attributes for the repo scope." attributes: Map - "Unique repository name within your organization, e.g. `aws-aurora-postgres`. Lowercase letters, numbers, dashes, underscores only. Max 53 characters. Cannot be changed after creation." + "Unique repository name within your organization, e.g. `aws-aurora-postgres`. Lowercase letters, numbers, dashes, underscores only. Max 100 characters. Cannot be changed after creation." id: String! } @@ -8430,7 +8489,7 @@ Filters for narrowing the OCI repositories list. All filters are combined with AND logic. """ input OciReposFilter { - "Filter by OCI artifact media type. Currently the only supported type is `application\/vnd.massdriver.bundle.v1+json`. Passing an unsupported type returns an empty list." + "Filter by OCI artifact media type. Supported types are `application\/vnd.massdriver.bundle.v1+json` and `application\/vnd.massdriver.resource-type.v1+json`. When omitted, repositories of every artifact type are returned. Passing an unsupported type returns an empty list." artifactType: String "Filter repositories by name using exact match, prefix, or set membership." @@ -8642,8 +8701,8 @@ type OciRepo { """ The [OCI artifact type](https://github.com/opencontainers/image-spec/blob/main/manifest.md#guidelines-for-artifact-usage) - stored in this repository. Currently always - `application/vnd.massdriver.bundle.v1+json`. + stored in this repository — `application/vnd.massdriver.bundle.v1+json` or + `application/vnd.massdriver.resource-type.v1+json`. """ artifactType: String!