Proto commits in wundergraph/wundergraph

These 73 commits are when the Protocol Buffers files have changed:

Commit:01100b7
Author:Alberto García Hierro
Committer:GitHub

fix: allow setting logging levels from command line (#1141) * fix: allow setting logging levels from command line - Make the command line flag propagate correctly to the TS side - Correctly update the logging level when the config is parsed - Introduce a TRACE level for the TS side (zap doesn't support it) Fixes ENG-3335 Fixes ENG-3357 * fix: default logging level on the SDK side * chore: add migration * chore: rename migration file * fix: incorrect merge --------- Co-authored-by: Pagebakers <eelco@appulse.nl>

The documentation is generated from this commit.

Commit:6cbdeba
Author:Eelco Wiersma
Committer:GitHub

feat: advanced hooks - dynamicTransport (#1124) * chore: move claims to references * feat: add defineConfig method * fix: generation * fix: load introspection async * feat: improve config generation * chore: skeleton test app for dynamic router * feat: initial support for a hook that performs HTTP requests * feat: add support for merging graphql responses * feat: add dynamic router integration * feat: add transport hook * fix: add support for defineConfig in wunderctl generate * feat: automatically assign IDs to data sources without one * fix: import name in template * chore: wip * fix: missing file * feat: add datasources config and improve types * feat: make on transport hook work with matchers * fix: pass namespace to introspection * fix: hooks types * chore: always assign numbers when multiple DS have the same ID * fix: crash * chore: cleanup * fix: pass the operation metadata in calls through the GraphQL handlers * chore: cleanup * refactor: introduce operation.Type Allows us to represent operation types without depending on the protobuf definition * chore: cleanup and add licensing * fix: missing file * chore: update example * fix: add separate data source type * chore: update example * chore: port dynamic-router to integrations API * chore: create more elaborate example * fix: use the right operation type for multioperation requests * fix: types and fallback * fix: update snapshots * fix: missing package * fix: remove duplicated schema-extensions from workspace * fix: remove duplicated entries from vitest workspace * fix: missing package * chore: move datasources to datasources folder * fix: tests * chore: increase linter timeout to 3 minutes * chore: define enterprise feature for advanced hooks * chore: add readme * chore: update readme * chore: fix typo * feat: move data sources to separate package entry * feat: add helper function to merge graphql responses * docs: document graphql merger docs * chore: add license header to merge.ts * test: add test for GraphQL merging * chore: don't assign _1 suffix to ids * fix: update test snapshots * fix: update autogenerated id * fix: formatting * docs: fix example * fix: remove comments, update TODO * feat: rename dynamic-router to advanced-hooks and dynamicTransport * fix: path to advanced-hooks apps in vitest workspace * fix: app path in vitest test setup * chore: add WGCL * fix: remove unused import * fix: use a random port for NATS tests * fix: use a random port for the builtin NATS server Also, start the server during wunderctl generate too * fix: manage the default NATS server URL entirely in the Go side * fix: update snapshots --------- Co-authored-by: fiam <alberto@garciahierro.com>

Commit:961f1f0
Author:Jens Neuse
Committer:GitHub

feat: initial impl of nats kv (#1057) Co-authored-by: fiam <alberto@garciahierro.com> Co-authored-by: thisisnithin <nithinkumar5353@gmail.com>

Commit:5ca5d57
Author:fiam

feat: initial support for a hook that performs HTTP requests

Commit:30a0b12
Author:Alberto García Hierro
Committer:GitHub

feat: add support for feature usage telemetry (#1096) Keeping track of the most used features allows us to prioritize the most important ones for our users.

Commit:5ba5a7a
Author:Alberto García Hierro
Committer:GitHub

perf: improve config generation/loading performance (#1070) * perf: improve config generation/loading performance - Use structuredCopy to copy values when available - Use protocol buffers as a serialization format - Use string references for storing database prisma/graphql schemas - Reduces generation time (on M1) from ~3.8s to ~2.9s in apps/basic => -900ms, -28% - Reduces config size from ~25MB to ~1.8MB in apps/basic => -23.2MB, -92.8% - Reduces config loading time (on M1) from 110ms to 7ms => -103ms, -93.7%) Fixes #1020

Commit:598ab1c
Author:Jens Neuse

chore: wip implement async operations

Commit:7b45975
Author:Dustin Deus
Committer:GitHub

feat: otel instrumentation of wundernode and server (#1004) * feat: otel instrumentation * chore: add sdk interface * chore: upgrade to go 1.19.0 due to otel dep * chore: zero overhead when disabling otel * chore: add example, improve error reporting * chore: ensure same default * chore: add e2e tests * chore: address feedback * chore: limit concurrency for big machines * chore: update vitest * chore: upgrade to go 1.20 and docker compose 3.8 * chore: run with limited concurrency, improves performance and stability * chore: fix port race in tests

Commit:fcc594d
Author:StarpTech

Merge branch 'main' into dustin/eng-1548-instrumentation-of-wundernode-server # Conflicts: # pkg/wgpb/wundernode_config.pb.go

Commit:b5f6b74
Author:Alberto García Hierro
Committer:GitHub

feat: make timeout during authentication configurable (#1018)

Commit:11ca386
Author:StarpTech

chore: merge

Commit:38326f3
Author:StarpTech

chore: add sdk interface

Commit:f949398
Author:Alberto García Hierro
Committer:GitHub

feat: use Prometheus to track and expose operation and API request counts (#991) Add support for exposing metrics using Prometheus, which can be optionally disabled at runtime. The following metrics are exposed: For operations: - Incoming HTTP request duration - Incoming HTTP request count (with status code) - Incoming HTTP request size - Outgoing HTTP response size For upstreams: - Number of requests sent per host (with method and status code) - Duration of requests sent per host Prometheus metrics are on by default, listening on http://<host>:8881/metrics. They can be disabled when calling configureWunderGraphApplication() and they're also controlled by environment variables. Additionally, add a guide about monitoring and observability with a section about Prometheus, to be extended later when we add OTEL support.

Commit:1b330d5
Author:Alberto García Hierro
Committer:GitHub

feat: improve Cache-Control support (#959) - Declare cache as public by default for anonymous operations, private for authenticated ones - Include a must-revalidate header by default - Allow disabling max-age and stale-while-revalidate - Update docs with new defaults and options

Commit:8cd45a3
Author:Eelco Wiersma
Committer:GitHub

feat: orm (#963) * feat: implement typescript orm * fix: remove invalid export * feat: auto-select all object fields * fix: cancel orm subscription operations * chore: replace @web-std/fetch with @whatwg-node/fetch * feat: cache orm code generation * chore: refactor orm instantiation and integration * chore: require opt-in for orm usage * chore: fix generated code * chore: improve HandlerContext type safety * fix: make optional object arguments optional * chore: remove unused ast module * fix: set orm to never when its disabled * fix: set ORM to undefined when not enabled * chore: fix codeformatting * chore: codeformatting --------- Co-authored-by: Tim Kendall <timkendall18@gmail.com> Co-authored-by: Jens Neuse <jens.neuse@gmx.de>

Commit:ce31c4c
Author:Alberto García Hierro
Committer:GitHub

feat: add support for caching in function handlers (#932) - Add a cache argument to functions for creating TS operations - Refactor cache support from QueryHandler into separate types - Use these new types to support caches from FunctionHandler - Add test for checking the response headers

Commit:c6f14f8
Author:Alberto García Hierro
Committer:GitHub

feat: add support for custom claims of any type (#911)

Commit:a472c46
Author:Alberto García Hierro
Committer:GitHub

feat: add support for using proxies in data sources (#854) * feat: add support for using proxies in data sources * chore: update snapshots * fix: properly detect when a source overrides the default proxy Also, ensure all fields for HTTP proxy have HTTP prefix * chore: document loadvariable.{String,LookupString} * chore: support data-source defined proxies during introspection * feat: add support for using a global proxy during graphql introspection * chore: allow disabling global proxy by setting ds proxy to null * perf: generate APIs in parallel * docs: document newly introduced types * fix: account for introspection options when generating cache key * chore: include upstream URL when reporting error in proxy URL * test: fix test for federated API * test: update snapshots * chore: simplify loop * fix: use resolved variable, otherwise the default gets ignored * fix: check for non-existing default in EnvironmentVariable * fix: formatting errors * fix: proxy url overriding logic * chore: add log messages when using HTTP proxies * test: add tests for proxy support * chore: fix snapshots * fix: set test timeout correctly * fix: increase test timeout for CI * chore: add tests using squid, add workaround for CONNECT * docs: document options for proxy URL a bit better * docs: document httpProxyUrl at the right place * chore: remove unused vitest.config.ts files * feat: support passing environment variables to createTestServer * feat: use a local TS based proxy instead of spinning up a container * chore: set increased timeout limits in describe() * docs: update data source docs with proxy options * chore: increase test timeout * docs: add guide for using HTTP proxies * refactor: move helper functions to a separate file * chore: update port number in test to use squid's default port * docs: rewording

Commit:f8f5f3a
Author:YuriBuerov

Merge remote-tracking branch 'origin/main' into yuri/eng-1434-add-otel-opentelemetry-to-wundernode

Commit:ad42f5f
Author:Nithin Kumar B
Committer:GitHub

feat: implement internal graphql handler (#853) * chore: new router + graphql * fix: internal handler * fix: shut down node and tests * fix: tests * fix: ci * fix: test * chore: rename env variable * docs: update configuration docs * fix: operations-client.ts * chore: address feedback * fix: use same host as public listener * chore: wip construct internal url in config * fix: configured node internal url * docs: update conventions * chore: address feedback

Commit:4351d7f
Author:thisisnotnithin

chore: wip construct internal url in config

Commit:39e55e9
Author:thisisnotnithin

chore: new router + graphql

Commit:ff16835
Author:YuriBuerov

Merge remote-tracking branch 'origin/main' into yuri/eng-1434-add-otel-opentelemetry-to-wundernode

Commit:6bf7498
Author:Dustin Deus
Committer:GitHub

feat: tui + log handling (#813) * feat: tui + log handling * fix: tty in wunderctl spawn * chore: upgrade cobra, use ringbuffer for both streams * chore: improve colors, add discord link * chore: improve * chore: get stats from build result * chore: improve * chore: improve * chore: improve * chore: improve * chore: improve * chore: improve * chore: fix lint * chore: fix lint * chore: improve * chore: improve * chore: improve * chore: improve * chore: improve * chore: improve * chore: always throw * chore: improve * chore: improve * chore: fix lint * chore: improve * chore: improve * chore: improve * chore: improve * chore: improve

Commit:90f85a2
Author:StarpTech

chore: improve

Commit:caf4506
Author:StarpTech

chore: improve

Commit:98e6aa8
Author:StarpTech

chore: improve

Commit:de5add0
Author:StarpTech

chore: get stats from build result

Commit:fdeaeec
Author:YuriBuerov

chore: otel, pr remarks

Commit:3503bd9
Author:YuriBuerov

feat: otel, jwt auth

Commit:4561967
Author:YuriBuerov

Merge remote-tracking branch 'origin/main' into yuri/eng-1434-add-otel-opentelemetry-to-wundernode

Commit:99b0476
Author:YuriBuerov

feat: otel, tracer instrumentation

Commit:2b424f3
Author:Oscar Lingard
Committer:GitHub

fix: custom int/float scalars usage in arguments (#427)Co-authored-by: Alberto García Hierro <alberto@garciahierro.com> Co-authored-by: Sergiy <818351+devsergiy@users.noreply.github.com> Co-authored-by: spetrunin <neyasut@gmail.com> * feat: adding custom int argument conversions * fix: don't swallow planner errors * fix: pass types to rename to graphql-go-tools * fix: rewrite upstream schema correctly for renamed types * chore: fix upstream schema transformation * chore: remove custom numeric scalars from merged schema --------- Co-authored-by: Alberto García Hierro <alberto@garciahierro.com> Co-authored-by: Sergiy <818351+devsergiy@users.noreply.github.com> Co-authored-by: spetrunin <neyasut@gmail.com>

Commit:2223d5c
Author:Alberto García Hierro
Committer:GitHub

feat: add support for declaring a list of public claims (#706) * feat: add support for declaring a list of public claims If non-empty, all other claims are hidden from the frontend. - Add PublicCustomClaims type, which picks fields from CustomClaims - Declare a PublicUser type in client.ts, which optionally picks the selected fields. - Add required machinery in the Go side to handle these fields - Validate the selected claims with strong types and during code generation - Document the usage of publicClaims

Commit:ce0a0a0
Author:Alberto García Hierro
Committer:GitHub

feat: add support for injecting variables into nested paths (#678) * feat: add support for injecting claims into nested paths Add a second optional argument to @fromClaim, which allows setting the JSON path for the variable injection. Add a test in the auth testapp to ensure its tested by CI. * fix: remove accidentally commited test change * chore: wip * chore: upgrade to graphql-go-tools 1.61.3 * feat: omit injected fields from input validation * feat: add support for injecting into variable paths * fix: update test snapshots * feat: add support for injection a JSON schema on variable fields * chore: format docs/wundergraphVSpostgraphile.md * docs: document on: argument for variable injection * feat: remove injected fields from input schema, implement @jsonSchema * chore: update test snapshot files * docs: clarify that variable injection directives can be repeated and combined * chore: add a better error message when a referenced on: field doesn't exist * chore: report an error when overwriting attributes via @jsonSchema Avoids silently overriding a field * fix: remove injected field from required Field definition was removed, but if it was present inside a parent type that had it as required, the required list was not updated. Add tests to validate this. --------- Co-authored-by: Sergiy Petrunin <spetrunin@users.noreply.github.com> Co-authored-by: Sergiy <818351+devsergiy@users.noreply.github.com>

Commit:1da04bb
Author:David Stutt

chore: responding to PR feedback

Commit:f8e37da
Author:David Stutt

chore: handle main conflicts

Commit:cb11382
Author:David Stutt

chore: work in progress

Commit:682b88c
Author:Alberto García Hierro
Committer:GitHub

feat: add support for custom claims (#648 * feat: initial (and incomplete) support for custom claims * chore: make custom claims an enum, prevent allocations when applying them * fix: remove unused import * refactor: change default requirement for custom claims to be true * fix: export ValueType from @wundergraph/sdk * fix: avoid ignoring errors when setting custom claims as variables * chore: add support for handling InputValidationError in handleOperationErr() * chore: return input validation errors when custom claims fail * chore: add more tests to jwks testapp * chore: rename jwks testapp to auth * chore: update pnpm-lock * chore: parse custom claims when logging in via token * fix: tests in SDK * refactor: rename Claim to WG_WELL_KNOWN_CLAIM, support more builtin claims * refactor: move custom claim injection to separate function, remove allocation * fix: make the new claims backwards compatible Provider an alias for PROVIDER * docs: add docs for @fromCustomClaim * refactor: use a string enum for definition custom claim types Avoids exporting ValueType from the SDK, keeping it internal * fix: add new User fields to TS User type, remove duplicated definition Alias User to server/WunderGraphUser * feat: add type-safe accessors to User inside hooks and TS functions * fix: import in generated file * fix: remove incorrect import * fix: tests * refactor: use a single @fromClaim directive, extending the enum instead * fix: package ID in testapps/auth Rename from jwks * chore: add test for checking wether a claim is custom * docs: document User fields for well known claims * docs: add migration guide with renamed User fields * chore: don't wait for test server to exit from test SDK Just terminate it

Commit:485975b
Author:Alberto García Hierro
Committer:GitHub

feat: add support for uploads from anonymous users (#632) - Add a new per-profile field, which defaults to requiring authentication - Add end to end tests to nodejs-file-upload example, which also validates that the upload hooks run. Co-authored-by: Dustin Deus <deusdustin@gmail.com>

Commit:2f0cfa5
Author:Jens Neuse
Committer:GitHub

feat: add prisma datasource (#605) Co-authored-by: Alberto García Hierro <alberto@garciahierro.com>

Commit:6144545
Author:Alberto García Hierro
Committer:GitHub

feat: add upload profiles for S3 providers (#476) Implement upload profiles in config, client, server, add new hooks and update docs Co-authored-by: Eelco Wiersma <contact@pagebakers.nl> Co-authored-by: Aenimus <47415099+Aenimus@users.noreply.github.com> Co-authored-by: David Stutt <david@wundergraph.com> Co-authored-by: Sergey Petrunin <neyasut@gmail.com> Co-authored-by: Sergiy Petrunin <spetrunin@users.noreply.github.com> Co-authored-by: Andrei Miulescu <lusu777@gmail.com> Co-authored-by: Nithin Kumar B <nithinkumar5353@gmail.com>

Commit:555dd66
Author:Jens Neuse
Committer:GitHub

chore: wip implement functions (#515) Co-authored-by: Alberto García Hierro <alberto@garciahierro.com>

Commit:3d0497e
Author:Sergey Petrunin

chore: draft

Commit:7465fb2
Author:Alberto García Hierro
Committer:GitHub

feat: add support for disconnecting from Auth0 (#525) * feat: add support for disconnecting from Auth0 Auth0 doesn't implement OIDC's end_session_endpoint, requiring a custom API instead. Add machinery to support this kind of APIs and implement a provider type to handle this. Also, update the auth0-oidc-authentication example to use port 3000 and add some extra setup instructions Fixes ENG-1016 Fixes ENG-968

Commit:7e16d44
Author:Alberto García Hierro
Committer:Alberto García Hierro

fix: unify logging levels across command line, node and server Instead of passing logging levels via the main JSON file, which does not allow overriding, send them around from the initial wunderctl invocation, across the API handlers and through the hooks server. This causes the logging level set from the command line to be enforced across the board.

Commit:45639db
Author:Alberto García Hierro
Committer:GitHub

feat: make detecting invalid operations easier (#374) * feat: make detecting invalid operations easier, allow empty ones - Allow .graphql files with zero operations, mark them as invalid. This allows commenting them out - When an operation is not valid, either by being empty or by producing an error during parsing, generate a handler that just returns an error for it. * feat: log an error message when an invalid operation is accesed via HTTP * fix: add missing change in unsaved file * refactor: use errors.As() instead of type assertion to test for infoError * refactor: count operations in GraphQL file by walking the AST Should provide the correct result in some edge cases when testing the length of doc.OperationDefinitions would fall short * chore: consider empty .graphql operation files errors Require them to have exactly one operation * fix: ammend error message to direct user to the logs in invalid op Asking them to use their IDE and intellisense feels too convoluted, and the logs should have the full error message.

Commit:ca09b3c
Author:Yuri Buerov
Committer:GitHub

feat: sdk, schema extension fields config (#336) * feat: sdk, schema extension fields config * feat: sdk, schema extension fields config * feat: sdk, schema extension clean up * chore: dependencies, update * chore: formatting, fix * chore: formatting, fix * chore: formatting, fix

Commit:e49e585
Author:Alberto García Hierro
Committer:GitHub

feat: remove app/main from URL structure (#335) * feat: remove /<app-name>/main prefix from router and pb definition Some minor changes to the SDK are also included, to accomodate for the missing fields in the types generated from .proto * fix: update code generation (#333) fix: update code generation to supoort the removal of app/main from the endpoints * feat: remove /<app-name>/main prefix from router and pb definition Some minor changes to the SDK are also included, to accomodate for the missing fields in the types generated from .proto * feat: update URLs in testapps for new style * feat: drop Client applicationPath and associated properties Not required now that we're refactoring the URLs * fix: port apollo-federation example to new URL/API * fix: update /auth0-oidc-authentication to new URL/API * fix: update caching example to new URL/API * fix: update cross-api-joins to new URL/API * fix: update faunadb-nextjs to new URL/API * fix: update fragments example to new URL/API * fix: update golang-client example to new URL/API * fix: update graphql-sse-subscriptions example to new URL/API * fix: update graphql-subscriptions-hooks example to new URL/API * fix: update graphql-ws-subscriptions example to new URL/API * fix: update graphql-yoga-sse-subscriptions example to new URL/API * fix: update hooks example to new URL/API * fix: update inject-bearer example to new URL/API * fix: update keycloak-oidc-authentication example to new URL/API * fix: update migrate-from-apollo example to new URL/API * fix: update nextjs example to new URL/API * fix: update nextjs-postgres-prisma to new URL/API * fix: update nextjs-swr example to new URL/API * fix: update rbac example to new URL/API * fix: upadte schema-extension example to use new URL/API * fix: update simple example to new URL/API * fix: update webhooks example to new URL/API * fix: update URLs in README files for new style * fix: update publish-install-api to new URL/API * fix: update graphql-hasura-subscriptions to new URL/API * fix: permissions in graphql-apollo-subscriptions example * fix: update graphql-apollo-subscriptions example to new URL/API * fix: typo in graphql-apollo-subscriptions README * fix: update postgres example to new URL/API * fix: update nextjs-postgres-user-filters example to new URL/API * chore(docs): update docs to reflect changes to WunderGraph protocol * chore(docs): update docs to reflect changes to WunderGraph protocol * docs: fix old-style URLs in a couple of pages * feat: add redirect for old-style URLs Redirect returns a 308 and logs a warning * feat: make old URL structure handle the request instead of redirecting This ensures clients that use an HTTP client without redirects enabled do not require any changes * docs: update URL structure doc, note there are some breaking changes * docs: remove two references to the old Application type * fix: nextjs swr test URL path used old-style URL * fix: url paths in vite testapp * fix: update .graphqlconfig in vite-swr example * fix: update URL style in gitpod.yml * fix: update mocks and tests for new URL style Co-authored-by: Suvij Surya <suvijsurya76@gmail.com> Co-authored-by: Jens Neuse <jens.neuse@gmx.de>

Commit:71423f5
Author:Alberto García Hierro
Committer:Alberto García Hierro

feat: remove /<app-name>/main prefix from router and pb definition Some minor changes to the SDK are also included, to accomodate for the missing fields in the types generated from .proto

Commit:2e4ae85
Author:Yuri Buerov
Committer:GitHub

feat: subscriptions, ws connection init hook (#243) * feat: subscriptions, hooks draft * feat: subscriptions, update snaphots * feat: subscriptions, clean up * feat: subscriptions, register wsTransport hook * feat: subscriptions, wsTransport hook test * fix: fix tests * feat: subscriptions, wsTransport hook types * feat: subscriptions, ws connection init callback * feat: subscriptions, update dependencies * chore: linter, fix * chore: enable id's for federated GraphQL and deduplicate Co-authored-by: starptech <deusdustin@gmail.com> Co-authored-by: Jens Neuse <jens.neuse@gmx.de>

Commit:bb3b6bd
Author:Alberto García Hierro
Committer:GitHub

feat: add configurable per-source timeouts (#232) * feat: add configurable per-source timeouts - Add a new optional timeout field in HTTPUpstream - Pass this new field to the node via FetchConfiguration, so it applies to all HTTP based sources - In the server, create a dedicated http.Client with the specified timeout as needed * feat: add support for timeouts to database based sources Move timeout parameter to DataSourceConfiguration, so all sources can now have a timeout regardless of their type. At some point, we might want to implement timeouts for all of them. * fix: edit pb.go file to match protoc version used in CI * feat: add default timeout for the whole app Add new optional field in NodeOptions with the timeout in milliseconds. For now, it only applies to HTTP based requests. * fix: rename timeout: to timeoutMilliseconds: in SDK Having the unit in the field name makes it more evident * feat: allow setting unlimited timeouts null-ish or < 0 will use the default timeout, but 0 will make it unlimited * fix: remove leftover field from HTTPUpstream timeout is not used anymore, now it applies to all data sources * fix: api changes timeoutMilliseconds -> requestTimeoutMilliseconds Also, disallow disabling the timeout by setting it to zero. Zero keeps the default value instead. * chore: use seconds instead of milliseconds for request timeouts * fix: fix newly added test * docs: fix incorrect field name in introspect.graphql() example * fix: override graphql_datasource.Factory HTTPClient Instead of creating a new instance, overwrite the HTTPClient field in the existing one * refactor: useCustomHTTPClient() -> requiresCustomHTTPClient() * docs: document added field to exported types * fix: update generated data in snapshot used for testing

Commit:7bf72ef
Author:Yuri Buerov
Committer:GitHub

feat: sse subscriptions configuration (#217) * feat: subscriptions, sse subscriptions configuration * chore: clean up * fix: subscriptions, use boolean config parameter * chore: subscriptions, rename config parameter * chore: subscriptions, update dependencies * feat: subscriptions, streaming http client * feat: subscriptions, streaming config param

Commit:c01bd9a
Author:Sergey Petrunin
Committer:GitHub

fix: allow to configure internal and public node urls separately (#207) * fix: add public node url to node options * chore: update docs * chore: fix pr comments * chore: trim public url for use as env baseUrl

Commit:6870130
Author:Jens Neuse
Committer:GitHub

feat: add post logout hook (#196) * chore: wip * chore: print user on logout * chore: simplify checking if we should log out from the oidc provider * chore: add docs for post logout hook

Commit:803da0e
Author:Sergey Petrunin
Committer:GitHub

feat: implement config first approach (#151) * chore: add commands template * chore: tmp * chore: reiterate approach * chore: use only env for node and server commands * chore: pass hooks url from env * feat: add server port to cli, use new env vars names * feat: use new server env variables in sdk * chore: fix reference to nodeUrl * chore: add baseUrl prop to ResolvedDeployment.Environment * feat: add new cli flags server-port and server-host deprecate middleware-listen-port flag * chore: pass node url instead of node addr to server runner * chore: remove defaults from js env, cleanup imports * chore: pass env variables to a config runner in generate cmd reorder imports in apihandler * fix: replace WG_NODE_ADDR with WG_NODE_URL env var in cmd/up * chore: cleanup * fix: rename HOOKS_TOKEN to WG_SERVER_TOKEN * chore: supply server url to node in start and up commands remove hardcoded hook server url for api * chore: remove hooks secret * chore: create node config from config.json * chore: adopt changes after merge * chore: draft * chore: use listeners info from wunder config remove wundernodeconfig.go * chore: change typescript and protobuf config contract * chore: extract api from proto into go. support only single api * chore: fix env vars * chore: fix build * chore: cleanup cli * chore: fix node test * chore: fix value of default log level * chore: fixes after merge. remove apiconfig pkg * chore: fix impors * chore: extract options to separate file, add server options with defaults * chore: update pkg/wgpb * chore: fixes after merge * chore: use correct node host and port * chore: map pb log level to pino log level * chore: revert changelogs to main version * chore: fix import * chore: move server url to the options * chore: fix providing url for custom graphql servers * feat: make EnvironmentVariable generic * chore: change logger options in proto * chore: refactor options defaults, add is cloud check,move server logger to middleware pkg chore: move variables to separate file * chore: make log level from enum to string type * chore: fix loading log level from config * chore: fix handling trailing slash in server/node url * chore: fix pr comments * chore: handle production env flag for server runner chore: rename pkg cli/runners to helpers * chore: kill hooks with port obtained from config * chore: extract get port helper chore: check that config.json exists on server start * chore: add killing server in cli/server/start when debug flag set * chore: export logger level and wg env to be able to use in in wundergraph.config.ts * chore: remove exit after log fatal * chore: exit when we could not get server port from config * Revert "chore: remove exit after log fatal" This reverts commit 88be0bb2525f10e98b1c1fb9276370a756ce101b. * chore: use log.fatal when could not read a port chore: read subset of config to get port * chore: specify version instead of commit for protoc-gen-go chore: regen pkg/wgpb * chore: redo fix for trailing slash in server url * chore: cleanup node and server parent commands chore: remove env vars from start commands usage description * chore: simplify url+path cleanup * chore: fix node test * chore: use trim slash oneliner * chore: update protoc version * chore: use less strict gh/action to get protoc new version * chore: fix gh action param * chore: remove obsole graphlconfig files not touched by generate command * Revert "chore: remove obsole graphlconfig files not touched by generate command" This reverts commit b471132525329acea9f0e6bfb981b96b2f483bc9. * chore: set default log level as INFO * feat: document server and node options feat: document default env variables * feat: document wunderctl node and server start commands * chore: add missing wunderctl start docs * chore: document internal requirements for the wunderctl environment variables * chore: fix misspelling of WundeNode * feat: add migration guide for the wunderctl * chore: add definitions for WunderNode and WunderGraph Server * chore: rename options pages * chore: add additional notes about env variables to wunderctl commands * chore: throw when we could not resolve environment variable * chore: cleanup docs * chore: handle graceful shutdown for server start * chore: cleanup migration guide * chore: use configJsonFilename constant * chore: kill server once on up start * chore: remove logging nil error * chore: add fallback urls when only port is changed * chore: fix pr comments * chore: bring back api.PrimaryHost field chore: use fmt.Sprintf in buildFetchUrl func * chore: update wunderctl docs * chore: cleanup error handling chore: change assigning to intermediate variable to go routine with argument * chore: increment wunderctl version for migration file * chore: remove kill process from server start * chore: kill server only when read from config is successfull * chore: rework termination * chore: fix docs * chore: add note on how to add internal links * chore: fix docs tags for wunderctl-reference * chore: link option to default env variables * chore: fix webhooks tagging * chore: fix node host for docker file chore: change way of setting node host in docs/wundernode.md * chore: revert protobuf changes for open api base url as a string (#190) * chore: revert protobuf changes for open api base url as a string * chore: simplify obtaining base url * Rename wunderctl-0.107.0-0.108.0.md to wunderctl-0.109.1-0.110.0.md Co-authored-by: starptech <deusdustin@gmail.com> Co-authored-by: Jens Neuse <jens.neuse@gmx.de>

Commit:57107c7
Author:Jens Neuse
Committer:GitHub

chore: switch baseURL to be string (#187) * chore: switch baseURL to be string * chore: generate with correct protoc version

Commit:d015bb1
Author:Yuri Buerov
Committer:GitHub

feat: oidc, allow passing additional query parameters to the IDP (#178) * feat: oidc, allow additional query params * feat: oidc, use config varable for query params name * feat: oidc, update proto * feat: oidc, add keycloak example * feat: oidc, update docs * feat: oidc, update docs * feat: oidc, update docs * feat: oidc, pr remarks

Commit:dde5c23
Author:Sergey Petrunin
Committer:GitHub

feat: move generated proto types into pkg/wgpb (#168) Co-authored-by: Dustin Deus <deusdustin@gmail.com> Co-authored-by: Jens Neuse <jens.neuse@gmx.de>

Commit:51df6e5
Author:Jens Neuse
Committer:GitHub

feat: implement userId for fromClaim directive (#152) * chore: fix spaceX tests * feat: userId to fromClaim directive * chore: add typescript codegen to 'make codegen' * chore: add test case to verify userId claim * chore: add userId example to docs * chore: update snapshot

Commit:a0b38bd
Author:Dustin Deus
Committer:GitHub

feat: native webhooks support (#126) * feat: implement native webhooks support Co-authored-by: Jens Neuse <jens.neuse@gmx.de>

Commit:ad45089
Author:starptech

feat: implement verifier interface

Commit:bf9e827
Author:Jens Neuse
Committer:GitHub

feat: implement webhooks verifiers (#128) Co-authored-by: starptech <deusdustin@gmail.com>

Commit:670b081
Author:starptech

Merge branch 'dustin/eng-4-implement-generic-webhooks-eg-to' into feat/implement-webhooks-go # Conflicts: # pkg/apihandler/apihandler.go # pkg/node/node_test.go # pkg/webhookhandler/webhookhandler.go

Commit:fdd3dbd
Author:Jens Neuse

feat: implement sha256 webhook verifier

Commit:4e897d6
Author:starptech

chore: add comments

Commit:172fd71
Author:Jens Neuse
Committer:GitHub

feat: implement webhook reverse proxy (#127)

Commit:3eb4abc
Author:Jens Neuse

feat: implement reverse proxy to forward webhooks to fastify

Commit:983e553
Author:Jens Neuse
Committer:GitHub

feat: add webhooks to WunderNode (#125)

Commit:9c240cc
Author:Sergey Petrunin

chore: use string for protoset config var instead of bytes

Commit:91c1bd8
Author:Sergey Petrunin
Committer:Sergey Petrunin

chore: tmp

Commit:31dc333
Author:Sergey Petrunin
Committer:Sergey Petrunin

feat: add grpc datasource

Commit:737bc30
Author:starptech

first commit ⭐