Make the backend.id mutable. Currently, it's saved on the root of the TypeInstance (same as typeRef) and cannot be changed via GraphQL mutation. This should be change from immutable to become mutable.
We don't need to change mutation GraphQL syntax:
mutation CreateTypeInstances {
createTypeInstances(
in: {
typeInstances: [
{
alias: "helm-release"
typeRef: { path: "cap.type.helm.chart.release", revision: "0.1.0" }
value: {
key: "test" # same as it was
}
backend: {
id: "123" # it's like that already.
context: { # new property of type `Any!`
name: "release-name",
namespace: "release-namespace",
}
}
}
]
}
) {
id
alias
}
}
but we need to change how it is handled by Local Hub and save it under TypeInstanceRevision.
Acceptance Criteria
Update Local Hub mutation to save backend under TypeInstanceRevision.
Change query syntax:
query GetTypeInstance($typeInstanceID: ID!) {
typeInstance(id: $typeInstanceID) {
id
typeRef {
path
revision
}
backend { # remove this backend entry
id
abstract
}
lockedBy
latestResourceVersion {
resourceVersion
createdBy
metadata {
attributes {
path
revision
}
}
spec {
value
}
backend {
# id <- new fields
# abstract <- new fields
context { # new property of type `Any!`
name
namespace
}
}
}
}
}
Update related documentation and examples.
Add integration test coverage that backend can be changed.
Description
Make the
backend.id
mutable. Currently, it's saved on the root of the TypeInstance (same astypeRef
) and cannot be changed via GraphQL mutation. This should be change from immutable to become mutable.We don't need to change mutation GraphQL syntax:
but we need to change how it is handled by Local Hub and save it under TypeInstanceRevision.
Acceptance Criteria
Related issues
See epic #604 for reason and use cases.