Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changes/6295.feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add domain-level app configuration GraphQL API
173 changes: 173 additions & 0 deletions docs/manager/graphql-reference/supergraph.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,13 @@ input AllowedGroups
remove: [String] = []
}

"""Added in 25.16.0. App configuration data"""
type AppConfig
@join__type(graph: STRAWBERRY)
{
extraConfig: JSON!
}

"""
Added in 25.14.0.

Expand Down Expand Up @@ -2044,6 +2051,24 @@ type DeleteDomain
msg: String
}

"""Added in 25.16.0. Input for deleting domain-level app configuration"""
input DeleteDomainConfigInput
@join__type(graph: STRAWBERRY)
{
domainName: String!
}

"""
Added in 25.16.0.
Payload returned after deleting domain-level app configuration.
Indicates whether the deletion was successful.
"""
type DeleteDomainConfigPayload
@join__type(graph: STRAWBERRY)
{
deleted: Boolean!
}

"""Added in 25.1.0."""
type DeleteEndpointAutoScalingRuleNode
@join__type(graph: GRAPHENE)
Expand Down Expand Up @@ -2171,6 +2196,28 @@ type DeleteUser
msg: String
}

"""
Added in 25.16.0.
Input for deleting user-level app configuration.
If user_id is not provided, the current user's configuration will be deleted.
"""
input DeleteUserConfigInput
@join__type(graph: STRAWBERRY)
{
userId: ID = null
}

"""
Added in 25.16.0.
Payload returned after deleting user-level app configuration.
Indicates whether the deletion was successful.
"""
type DeleteUserConfigPayload
@join__type(graph: STRAWBERRY)
{
deleted: Boolean!
}

type DeleteUserResourcePolicy
@join__type(graph: GRAPHENE)
{
Expand Down Expand Up @@ -4523,6 +4570,48 @@ type Mutation
"""
importArtifacts(input: ImportArtifactsInput!): ImportArtifactsPayload! @join__field(graph: STRAWBERRY)

"""
Added in 25.16.0.
Create or update domain-level app configuration.
The provided extra_config object will completely replace the existing configuration;
existing keys not present in the new extra_config will be removed.
All users in this domain will be affected by these settings when their configurations are merged,
unless they have user-level configurations that override specific keys.
Requires admin privileges.
"""
upsertDomainAppConfig(input: UpsertDomainConfigInput!): UpsertDomainConfigPayload! @join__field(graph: STRAWBERRY)

"""
Added in 25.16.0.
Create or update user-level app configuration.
The provided extra_config object will completely replace the existing configuration;
existing keys not present in the new extra_config will be removed.
These settings will override domain-level settings when configurations are merged for this user.
If user_id is not provided, the current user's configuration will be updated.
Users can only modify their own configuration, but admins can modify any user's configuration.
"""
upsertUserAppConfig(input: UpsertUserConfigInput!): UpsertUserConfigPayload! @join__field(graph: STRAWBERRY)

"""
Added in 25.16.0.
Delete domain-level app configuration.
All users in this domain may be affected by this deletion.
After deletion, users will only receive their user-level configurations
when configurations are merged, with no domain-level defaults.
Requires admin privileges.
"""
deleteDomainAppConfig(input: DeleteDomainConfigInput!): DeleteDomainConfigPayload! @join__field(graph: STRAWBERRY)

"""
Added in 25.16.0.
Delete user-level app configuration.
After deletion, the user will still receive domain-level configuration values
when configurations are merged, as domain settings remain unaffected.
If user_id is not provided, the current user's configuration will be deleted.
Users can only delete their own configuration, but admins can delete any user's configuration.
"""
deleteUserAppConfig(input: DeleteUserConfigInput!): DeleteUserConfigPayload! @join__field(graph: STRAWBERRY)

"""
Added in 25.15.0.

Expand Down Expand Up @@ -5405,6 +5494,39 @@ type Query
"""
artifactRevisions(filter: ArtifactRevisionFilter = null, orderBy: [ArtifactRevisionOrderBy!] = null, before: String = null, after: String = null, first: Int = null, last: Int = null, limit: Int = null, offset: Int = null): ArtifactRevisionConnection! @join__field(graph: STRAWBERRY)

"""
Added in 25.16.0.
Retrieve domain-level app configuration.
Returns only the configuration set specifically for the domain, without merging.
This query is useful for checking what values are configured at the domain level
when you want to modify domain or user configurations separately.
For actual configuration values to be applied, use mergedAppConfig instead.
Requires admin privileges.
"""
domainAppConfig(domainName: String!): AppConfig @join__field(graph: STRAWBERRY)

"""
Added in 25.16.0.
Retrieve user-level app configuration.
Returns only the configuration set specifically for the user, without merging with domain config.
This query is useful for checking what values are configured at the user level
when you want to modify domain or user configurations separately.
For actual configuration values to be applied, use mergedAppConfig instead.
If user_id is not provided, returns the current user's configuration.
Users can only access their own configuration, but admins can access any user's configuration.
"""
userAppConfig(userId: ID = null): AppConfig @join__field(graph: STRAWBERRY)

"""
Added in 25.16.0.
Retrieve merged app configuration for the current user.
The result combines domain-level and user-level configurations,
where user settings override domain settings for the same keys.
This query should be used when working with user app configurations
to get the actual configuration values that will be applied.
"""
mergedAppConfig: AppConfig! @join__field(graph: STRAWBERRY)

"""Added in 25.16.0"""
deployments(filter: DeploymentFilter = null, orderBy: [DeploymentOrderBy!] = null, before: String = null, after: String = null, first: Int = null, last: Int = null, limit: Int = null, offset: Int = null): ModelDeploymentConnection! @join__field(graph: STRAWBERRY)

Expand Down Expand Up @@ -6435,6 +6557,57 @@ type UpdateVFSStoragePayload
vfsStorage: VFSStorage!
}

"""
Added in 25.16.0.
Input for creating or updating domain-level app configuration.
The provided extra_config object will completely replace the existing configuration;
existing keys not present in the new extra_config will be removed.
All users in this domain will be affected by these settings when their configurations are merged.
"""
input UpsertDomainConfigInput
@join__type(graph: STRAWBERRY)
{
domainName: String!
extraConfig: JSON!
}

"""
Added in 25.16.0.
Payload returned after upserting domain-level app configuration.
Contains the resulting configuration that was stored.
"""
type UpsertDomainConfigPayload
@join__type(graph: STRAWBERRY)
{
appConfig: AppConfig!
}

"""
Added in 25.16.0.
Input for creating or updating user-level app configuration.
The provided extra_config object will completely replace the existing configuration;
existing keys not present in the new extra_config will be removed.
These settings will override domain-level settings when configurations are merged for this user.
If user_id is not provided, the current user's configuration will be updated.
"""
input UpsertUserConfigInput
@join__type(graph: STRAWBERRY)
{
extraConfig: JSON!
userId: ID = null
}

"""
Added in 25.16.0.
Payload returned after upserting user-level app configuration.
Contains the resulting configuration that was stored.
"""
type UpsertUserConfigPayload
@join__type(graph: STRAWBERRY)
{
appConfig: AppConfig!
}

type User implements Item
@join__implements(graph: GRAPHENE, interface: "Item")
@join__type(graph: GRAPHENE)
Expand Down
Loading
Loading