Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 94339ec447 | |||
| 8cb76eff37 | |||
| ed86526da0 | |||
| cec99cb080 |
+45
-1
@@ -2,7 +2,51 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.9.7] - 2026-05-11
|
||||
## [0.9.8] - 2026-06-16
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(deps)* Update module github.com/wundergraph/graphql-go-tools/v2 to v2.2.0 (#835)
|
||||
- *(deps)* Update module github.com/wundergraph/graphql-go-tools/v2 to v2.3.0 (#836)
|
||||
- *(deps)* Update module github.com/auth0/go-jwt-middleware/v3 to v3.2.0 (#837)
|
||||
- *(k8s)* Point OTEL endpoint to k8s-monitoring-alloy service (#839)
|
||||
- Raise Node heap cap to 512MB and bump pod memory limit (#838)
|
||||
- *(k8s)* Raise schemas CPU request from 20m to 100m (#840)
|
||||
- *(k8s)* Add scaleUp/scaleDown stabilization to schemas HPA (#844)
|
||||
- *(deps)* Update module github.com/wundergraph/graphql-go-tools/v2 to v2.3.1 (#845)
|
||||
- *(deps)* Update module github.com/wundergraph/graphql-go-tools/v2 to v2.4.0 (#846)
|
||||
- *(deps)* Update module golang.org/x/crypto to v0.52.0 (#848)
|
||||
- *(deps)* Update eventsourced (#849)
|
||||
- *(deps)* Update module gitlab.com/unboundsoftware/eventsourced/pg to v1.20.0 (#850)
|
||||
- Bump eventsourced/pg to v2.0.2 and harden startup error logging (#851)
|
||||
- *(deps)* Update module github.com/wundergraph/graphql-go-tools/v2 to v2.4.1 (#852)
|
||||
- *(deps)* Update module go.opentelemetry.io/contrib/bridges/otelslog to v0.19.0 (#854)
|
||||
- *(deps)* Update opentelemetry-go monorepo (#853)
|
||||
- *(deps)* Update module github.com/wundergraph/graphql-go-tools/v2 to v2.4.2 (#856)
|
||||
- *(deps)* Update module github.com/wundergraph/graphql-go-tools/v2 to v2.4.3 (#857)
|
||||
- *(deps)* Update module golang.org/x/sync to v0.21.0 (#858)
|
||||
- *(deps)* Update module github.com/vektah/gqlparser/v2 to v2.5.34 (#860)
|
||||
- *(deps)* Update module github.com/wundergraph/graphql-go-tools/v2 to v2.4.4 (#862)
|
||||
- *(deps)* Update module golang.org/x/crypto to v0.53.0 (#863)
|
||||
- *(deps)* Update module github.com/wundergraph/graphql-go-tools/v2 to v2.4.5 (#865)
|
||||
- *(deps)* Update module github.com/99designs/gqlgen to v0.17.91 (#864)
|
||||
- *(deps)* Update module github.com/wundergraph/graphql-go-tools/v2 to v2.4.6 (#866)
|
||||
|
||||
### ⚡ Performance
|
||||
|
||||
- *(graph)* Cache merged SDL and SchemaUpdate per ref (#841)
|
||||
- *(graph)* Warm schema cache on startup to kill cold-start spikes (#843)
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(deps)* Update golang:1.26.3 docker digest to 54d3246 (#842)
|
||||
- *(deps)* Update node.js to v24.16.0 (#847)
|
||||
- *(deps)* Update golang docker tag to v1.26.4 (#855)
|
||||
- *(deps)* Update node.js to fb71d01 (#859)
|
||||
- *(deps)* Update golang:1.26.4 docker digest to 62df9f3 (#861)
|
||||
- *(deps)* Update node.js to 21f403a (#867)
|
||||
|
||||
## [0.9.7] - 2026-05-14
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ RUN GOOS=linux GOARCH=amd64 go build \
|
||||
FROM scratch as export
|
||||
COPY --from=build /build/coverage.txt /
|
||||
|
||||
FROM node:24.16.0-alpine@sha256:fb71d01345f11b708a3553c66e7c74074f2d506400ea81973343d915cb64eef0
|
||||
FROM node:24.16.0-alpine@sha256:21f403ab171f2dc89bad4dd69d7721bfd15f084ccb46cdd225f31f2bc59b5c9a
|
||||
ENV TZ Europe/Stockholm
|
||||
|
||||
# Install wgc CLI globally for Cosmo Router composition
|
||||
|
||||
@@ -16,7 +16,7 @@ require (
|
||||
github.com/sparetimecoders/goamqp v0.3.3
|
||||
github.com/stretchr/testify v1.11.1
|
||||
github.com/vektah/gqlparser/v2 v2.5.34
|
||||
github.com/wundergraph/graphql-go-tools/v2 v2.4.5
|
||||
github.com/wundergraph/graphql-go-tools/v2 v2.4.6
|
||||
gitlab.com/unboundsoftware/eventsourced/amqp v1.9.1
|
||||
gitlab.com/unboundsoftware/eventsourced/eventsourced v1.23.0
|
||||
gitlab.com/unboundsoftware/eventsourced/pg/v2 v2.0.2
|
||||
|
||||
@@ -196,8 +196,8 @@ github.com/wundergraph/astjson v1.1.0 h1:xORDosrZ87zQFJwNGe/HIHXqzpdHOFmqWgykCLV
|
||||
github.com/wundergraph/astjson v1.1.0/go.mod h1:h12D/dxxnedtLzsKyBLK7/Oe4TAoGpRVC9nDpDrZSWw=
|
||||
github.com/wundergraph/go-arena v1.3.0 h1:n0ng5a1vbd8YGq1u3rMr0vPU5f6AZ1BXIiUhL1UIok8=
|
||||
github.com/wundergraph/go-arena v1.3.0/go.mod h1:ROOysEHWJjLQ8FSfNxZCziagb7Qw2nXY3/vgKRh7eWw=
|
||||
github.com/wundergraph/graphql-go-tools/v2 v2.4.5 h1:hJsNYupt3i2zWD9X00ytcEkgU6Cr+//21oIKMDbydmE=
|
||||
github.com/wundergraph/graphql-go-tools/v2 v2.4.5/go.mod h1:rGG9m74sUyucfvSZ83Mjuq/6qRJetl1CVP872f/dCok=
|
||||
github.com/wundergraph/graphql-go-tools/v2 v2.4.6 h1:MqUDusuiOGlO0Oa8etTdcVA2ySmY0XehTDq/dILelEw=
|
||||
github.com/wundergraph/graphql-go-tools/v2 v2.4.6/go.mod h1:rGG9m74sUyucfvSZ83Mjuq/6qRJetl1CVP872f/dCok=
|
||||
gitlab.com/unboundsoftware/eventsourced/amqp v1.9.1 h1:X6269JoAzHIKCVmtgMHZH3m7xOpACSp37ca3eODe9iU=
|
||||
gitlab.com/unboundsoftware/eventsourced/amqp v1.9.1/go.mod h1:EAs0d6Eh0aDiQkUJlSWErHqgHFQdxx0e8I7aG/2FarY=
|
||||
gitlab.com/unboundsoftware/eventsourced/eventsourced v1.23.0 h1:qcteJH9D7kHaOgLQ0fzlW9dv42hSa0Vluqt7p4kooWA=
|
||||
|
||||
@@ -20,7 +20,7 @@ import (
|
||||
"gitea.unbound.se/unboundsoftware/schemas/graph/model"
|
||||
)
|
||||
|
||||
// region ************************** generated!.gotpl **************************
|
||||
// region ***************************** api!.gotpl *****************************
|
||||
|
||||
// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.
|
||||
func NewExecutableSchema(cfg Config) graphql.ExecutableSchema {
|
||||
@@ -111,6 +111,10 @@ type ComplexityRoot struct {
|
||||
}
|
||||
}
|
||||
|
||||
// endregion ***************************** api!.gotpl *****************************
|
||||
|
||||
// region ************************** generated!.gotpl **************************
|
||||
|
||||
type MutationResolver interface {
|
||||
AddOrganization(ctx context.Context, name string) (*model.Organization, error)
|
||||
AddUserToOrganization(ctx context.Context, organizationID string, userID string) (*model.Organization, error)
|
||||
@@ -129,6 +133,10 @@ type SubscriptionResolver interface {
|
||||
SchemaUpdates(ctx context.Context, ref string) (<-chan *model.SchemaUpdate, error)
|
||||
}
|
||||
|
||||
// endregion ************************** generated!.gotpl **************************
|
||||
|
||||
// region ************************** internal!.gotpl ***************************
|
||||
|
||||
type executableSchema graphql.ExecutableSchemaState[ResolverRoot, DirectiveRoot, ComplexityRoot]
|
||||
|
||||
func (e *executableSchema) Schema() *ast.Schema {
|
||||
@@ -828,7 +836,7 @@ func (ec *executionContext) childFields___Type(ctx context.Context, field graphq
|
||||
return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name)
|
||||
}
|
||||
|
||||
// endregion ************************** generated!.gotpl **************************
|
||||
// endregion ************************** internal!.gotpl ***************************
|
||||
|
||||
// region ***************************** args.gotpl *****************************
|
||||
|
||||
@@ -1076,10 +1084,6 @@ func (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArg
|
||||
|
||||
// endregion ***************************** args.gotpl *****************************
|
||||
|
||||
// region ************************** directives.gotpl **************************
|
||||
|
||||
// endregion ************************** directives.gotpl **************************
|
||||
|
||||
// region **************************** field.gotpl *****************************
|
||||
|
||||
func (ec *executionContext) _APIKey_id(ctx context.Context, field graphql.CollectedField, obj *model.APIKey) (ret graphql.Marshaler) {
|
||||
@@ -3771,6 +3775,9 @@ func (ec *executionContext) _APIKey(ctx context.Context, sel ast.SelectionSet, o
|
||||
}
|
||||
case "key":
|
||||
out.Values[i] = ec._APIKey_key(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "organization":
|
||||
out.Values[i] = ec._APIKey_organization(ctx, field, obj)
|
||||
if out.Values[i] == graphql.Null {
|
||||
@@ -4063,10 +4070,16 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr
|
||||
out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {
|
||||
return ec._Query___type(ctx, field)
|
||||
})
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
atomic.AddUint32(&out.Invalids, 1)
|
||||
}
|
||||
case "__schema":
|
||||
out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) {
|
||||
return ec._Query___schema(ctx, field)
|
||||
})
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
atomic.AddUint32(&out.Invalids, 1)
|
||||
}
|
||||
default:
|
||||
panic("unknown field " + strconv.Quote(field.Name))
|
||||
}
|
||||
@@ -4118,6 +4131,9 @@ func (ec *executionContext) _SchemaUpdate(ctx context.Context, sel ast.Selection
|
||||
}
|
||||
case "cosmoRouterConfig":
|
||||
out.Values[i] = ec._SchemaUpdate_cosmoRouterConfig(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
default:
|
||||
panic("unknown field " + strconv.Quote(field.Name))
|
||||
}
|
||||
@@ -4164,8 +4180,14 @@ func (ec *executionContext) _SubGraph(ctx context.Context, sel ast.SelectionSet,
|
||||
}
|
||||
case "url":
|
||||
out.Values[i] = ec._SubGraph_url(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "wsUrl":
|
||||
out.Values[i] = ec._SubGraph_wsUrl(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "sdl":
|
||||
out.Values[i] = ec._SubGraph_sdl(ctx, field, obj)
|
||||
if out.Values[i] == graphql.Null {
|
||||
@@ -4379,6 +4401,9 @@ func (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionS
|
||||
}
|
||||
case "description":
|
||||
out.Values[i] = ec.___Directive_description(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "isRepeatable":
|
||||
out.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj)
|
||||
if out.Values[i] == graphql.Null {
|
||||
@@ -4435,6 +4460,9 @@ func (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionS
|
||||
}
|
||||
case "description":
|
||||
out.Values[i] = ec.___EnumValue_description(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "isDeprecated":
|
||||
out.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj)
|
||||
if out.Values[i] == graphql.Null {
|
||||
@@ -4442,6 +4470,9 @@ func (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionS
|
||||
}
|
||||
case "deprecationReason":
|
||||
out.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
default:
|
||||
panic("unknown field " + strconv.Quote(field.Name))
|
||||
}
|
||||
@@ -4483,6 +4514,9 @@ func (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet,
|
||||
}
|
||||
case "description":
|
||||
out.Values[i] = ec.___Field_description(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "args":
|
||||
out.Values[i] = ec.___Field_args(ctx, field, obj)
|
||||
if out.Values[i] == graphql.Null {
|
||||
@@ -4500,6 +4534,9 @@ func (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet,
|
||||
}
|
||||
case "deprecationReason":
|
||||
out.Values[i] = ec.___Field_deprecationReason(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
default:
|
||||
panic("unknown field " + strconv.Quote(field.Name))
|
||||
}
|
||||
@@ -4541,6 +4578,9 @@ func (ec *executionContext) ___InputValue(ctx context.Context, sel ast.Selection
|
||||
}
|
||||
case "description":
|
||||
out.Values[i] = ec.___InputValue_description(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "type":
|
||||
out.Values[i] = ec.___InputValue_type(ctx, field, obj)
|
||||
if out.Values[i] == graphql.Null {
|
||||
@@ -4548,6 +4588,9 @@ func (ec *executionContext) ___InputValue(ctx context.Context, sel ast.Selection
|
||||
}
|
||||
case "defaultValue":
|
||||
out.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "isDeprecated":
|
||||
out.Values[i] = ec.___InputValue_isDeprecated(ctx, field, obj)
|
||||
if out.Values[i] == graphql.Null {
|
||||
@@ -4555,6 +4598,9 @@ func (ec *executionContext) ___InputValue(ctx context.Context, sel ast.Selection
|
||||
}
|
||||
case "deprecationReason":
|
||||
out.Values[i] = ec.___InputValue_deprecationReason(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
default:
|
||||
panic("unknown field " + strconv.Quote(field.Name))
|
||||
}
|
||||
@@ -4591,6 +4637,9 @@ func (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet,
|
||||
out.Values[i] = graphql.MarshalString("__Schema")
|
||||
case "description":
|
||||
out.Values[i] = ec.___Schema_description(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "types":
|
||||
out.Values[i] = ec.___Schema_types(ctx, field, obj)
|
||||
if out.Values[i] == graphql.Null {
|
||||
@@ -4603,8 +4652,14 @@ func (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet,
|
||||
}
|
||||
case "mutationType":
|
||||
out.Values[i] = ec.___Schema_mutationType(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "subscriptionType":
|
||||
out.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "directives":
|
||||
out.Values[i] = ec.___Schema_directives(ctx, field, obj)
|
||||
if out.Values[i] == graphql.Null {
|
||||
@@ -4651,24 +4706,54 @@ func (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, o
|
||||
}
|
||||
case "name":
|
||||
out.Values[i] = ec.___Type_name(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "description":
|
||||
out.Values[i] = ec.___Type_description(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "specifiedByURL":
|
||||
out.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "fields":
|
||||
out.Values[i] = ec.___Type_fields(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "interfaces":
|
||||
out.Values[i] = ec.___Type_interfaces(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "possibleTypes":
|
||||
out.Values[i] = ec.___Type_possibleTypes(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "enumValues":
|
||||
out.Values[i] = ec.___Type_enumValues(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "inputFields":
|
||||
out.Values[i] = ec.___Type_inputFields(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "ofType":
|
||||
out.Values[i] = ec.___Type_ofType(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
case "isOneOf":
|
||||
out.Values[i] = ec.___Type_isOneOf(ctx, field, obj)
|
||||
if out.Values[i] == graphql.RequiredNull {
|
||||
out.Invalids++
|
||||
}
|
||||
default:
|
||||
panic("unknown field " + strconv.Quote(field.Name))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user