Skip to main content

customAttributeSchema

Returns a JSON Schema document describing the custom-attribute keys and permitted values for a given action, narrowed by the caller's policies.

The schema is the org's custom-attribute schema for the action's scope (e.g. project:create → project-scope attributes), with each key's enum reduced to the values the caller's allow policies permit for that action. Org admins see the full closed set; non-admins with no matching policy receive {"properties": {}, "additionalProperties": false}, which rejects any write. Actions whose entity has no custom-attribute scope (group, organization, resource, resource_type) return {"type": "object"} (no constraints).

Renders well as a form schema for createProject, createEnvironment, setComponentAttributes, etc. — only the choices the API will actually accept on write are surfaced.

Returns a NOT_FOUND error when action is not in the policy catalog.

customAttributeSchema(
organizationId: ID!
action: String!
): Map!

Arguments

customAttributeSchema.organizationId ● ID! non-null scalar {#organization-id}

Your organization's unique identifier.

customAttributeSchema.action ● String! non-null scalar {#action}

Action id in entity:verb form (for example project:create). Query policyActions for the catalog.

Type

Map scalar

A JSON object (key-value map) encoded as a string. Accepts only {} objects — arrays, strings, numbers, booleans, and null are rejected. Pass values as a JSON-encoded string, e.g. {"key": "value"}. Used for dynamic configuration data like integration configs, parameter overrides, and schemas.