Skip to main content

Changelog

All notable changes to this project will be documented in this file.

v0.3.6 - 2024-03-14

Bug Fixes

(gate) RandomRuntime does not consider enum, either, union variants (#619)

add either, enum, struct and union type support in Random Runtime.

Motivation and context

generating random values for enums, either and union types was failing.

Migration notes

_No Migrations Needed

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(python-wasi) Fix for vm not initialized after consecutive deploy (#617)

Bug fix for typegate throwing vm not initialized after reload

Motivation and context

Bug fix

Migration notes

No Migrations Needed

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Apply from context (#616)

Fix type validators for apply from context.

Motivation and context

Bug.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Optimize typegraph size (#618)

  • Hash all type data to compare them on the conversion phase in typegraph/core: remove duplicate types from type final typegraph (duplicate: same value for all the fields except for the "random" name/title).
  • Skip unreferenced types in .apply

Motivation and context

Typegraph is too big sometimes.

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Miscellaneous Tasks

Prepare release v0.3.6 (#626)

Prepare release v0.3.6

Motivation and context

N/A

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

v0.3.5 - 2024-03-05

Bug Fixes

(cli) Fix for meta-cli deploy exit with code 0 on failure (#600)

fix the issue where meta-cli deploy command exits with code 0 on failure.

Motivation and context

bug fix

Migration notes

No changes needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(typegate,typegraph) Minor bugs (#596)

Just a few very minor bugs I'd encountered this week. Tests pending.

Motivation and context

Bugs.

Migration notes

No changes required

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Show error message for unregistered type name (#594)

Check and throw the error for the expose function when called from the Python SDK.

Motivation and context

We got a finalization failure when there are some unregistered type referenced with g.ref.

Migration notes

No changes needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Remove injections from prisma output types (#597)

Remove injections from generated output types for prisma operations.

Motivation and context

Generated types fail validations (injection not allowed in output types).

Migration notes

No changes needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Esm customizer for typegate deno ext (#606)

Enables v8 snapshots integration for meta typegate subcommand and the standalone typegate. Also bumps deno to 1.41.0.

Motivation and context

Re-enable macos-latest cli-compat test job (#608)

Fixes and enables the broken job.

Motivation and context

Job was disabled earlier to mysterious breakages.

Migration notes

No changes required

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Features

(deno/sdk) Native function embedding in typescript (#598)

Add support for function or lambda definition typescript sdk for deno.func similarly to how python.from_def in python sdk works.

Motivation and context

Providing a string is a bit impractical and counter-intuitive espcially when the sdk language matches with runtime's language.

Migration notes

No changes needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(sdk) Testing framework integration 2 (#579)

Motivation and context

Continuation of #566 , focused on prisma runtime.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(sdk) From_random injection (#593)

This change includes changes in StringFormats(added some string formats), logic to provide random values for type nodes and tests to validate the changes. The changes are mostly in the typegraph sdk.

Motivation and context

This feature enables the user to inject random values for a field(Type Node) when defining a Typegraph.

Migration notes

No changes needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Remove obsolete restrictions on prisma (#592)

Motivation and context

Since v5, where on unique queries exposes all the fields, not just unique fields.

Parameter transformation (#587)

Enable parameter transformation with the .apply() method. It has more or less the same logic as .reduce() with the ability to flatten the input type.

Motivation and context

This feature enables simpler APIs (input types) on top of runtimes (e.g.: prisma).

Migration notes

No changes needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Nested context query (#595)

  • BREAKING: Nested context query (#595)
  • Revert context flattening
  • Enable jsonpath-like key to access nested object fields or array items on the context.

Migration notes

If you access the context directly in your application (through the token), access to nested fields shall be updated. E.g. the expression context["profile.id"] have to turned to context.profile.id.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Miscellaneous Tasks

(release) Bump 0.3.5 (#613)

Ready for release of v0.3.5

Motivation and context

Required by console.

Migration notes

No changes required_.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Refactor

(sdk) Move post-processing functions to the typegate (#586)

Motivation and context

Depends on #579 Compiled wasm bin size is too large, goal is to reduce it to ~3MB.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Make fat meta-cli the default (#607)

  • BREAKING: make fat meta-cli the default (#607)

Switch the default meta-cli release to the fat version (the one that includes the typegate subcommand).

Motivation and context

v0.3.4 - 2024-02-10

Bug Fixes

(ci) upload-artifact@v4 migration, cross compilation for meta + typegate (#571)

The recent update to upload-artifact@v4 has some breaking changes as described here. This PR addresses them. It also fixes the cross-compilation issues with the meta-cli job in the release workflow.

Motivation and context

Issue in release workflow.

Migration notes

No changes required.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(ci) Minor typo in release.yml/docker (#576)

Small typo blocking the job that pushes the images to ghcr.io.

Motivation and context

Broken run.

Migration notes

No changes required.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(ci) Missing ts modules from typegate image (#577)

Adds a check step to the typegate's Dockerfile and converts the .dockerignore to be a whitelist.

Motivation and context

The image for 0.3.3 has some files missing.

Migration notes

No changes required

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(typegate) Fix tmp dir issue, bump to 0.3.4 (#583)

  • Fixes an issue with the prisma migration code being unable to properly mktmpd when running in the typegate images.
  • Removes cross usage for all but the aarch64-unknown-linux-gnu target in the meta-cli release jobs. Deno doesn't like being cross compiled, doesn't like being built by the cross toolchain in general (even for the native target). The consequence of all this is that the aarch64-unknown-linux-gnu target will temporarily lack the full version builds.
  • This also bumps the version of the 0.3.4 to get the fix out.

Motivation and context

The main TMP_DIR was not created properly in the typegate Dockerfile.

Migration notes

No changes required

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Remove unallowed fields (#569)

Skip fields with policies in findListQueries.

Motivation and context

Console.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Hotfix typo in release.yml (#580)

Yes, another one lol. This removes the target param from the release builder which will default to the last stage of the Dockerfile, the epoint stage. I elected to remove the parameter rather than replacing the value in order to remove one more place future changes will have to consider. (convention better than configuration the saying goes (i think)).

Motivation and context

The typegate images currently have the wrong target and thus the wrong entrypoint command.

Migration notes

No changes required

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Documentation

(website) Cleanup (#521)

Describe your change

This mainly shuffles around the existing docs for better structure. Still a lot to be done. The following pages are also empty as I lack the info regarding their topics:

  • Architecture
  • Query engine

Super open to feedback. Bring up any points that you think should be mentioned on each page and I'll add them.

Getting started guide for the vscode extension (#578)

Motivation and context

Documentation is missing.

Migration notes

No changes needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Features

(sdk) Testing framework integration (#566)

Motivation and context

Enable deploying directly from the typegraph instead of always relying on meta-cli.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

v0.3.3 - 2024-01-31

Bug Fixes

(ci) Bug in typegraph release job (#545)

Motivation and context

jco output path is wrong.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(ci) Typo in release.yml (#548)

Fix small typo. Surprised act didn't catch this, it must evaluate expressions lazily.

(ci) Force/skip push to registries on manual release (#549)

What it says on the tin can. Also fixes a typo in the vscode-extension job.

Motivation and context

Manual re-release breaks otherwise as seen here.

(ci) Typos in release.yml (#550)

Oof, I can't believe I missed these. The publish steps are hard to test locally with act so ig they require extra scrutiny.

Motivation and context

Bug on manual dispatch of releasae wflow.

(ci) Mismatch in location of $AZURE_DEVOPS_TOKEN (#551)

Another minor issue with the release workflow.

Motivation and context

Failure in release run here.

(ci,release) Hack for broken arm64 builds, bump deno to 1.40.1, bump to 0.3.3 (#565)

This provides a temporary fix for the broken build on arm64. The issue's related to wasm-opt builds not being availaible for install by ghjk/cargo-binstall. This PR uses cargo install directly instead when in the dockerfile.

It also:

  • bumps metatype version to 0.3.3 to ready the next release
  • bumps the deno version to 1.40.1 (which comes with some changes)

Motivation and context

Failure in CI run..

Migration notes

No changes required

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(cli) Bad conditionals in loader detection (#559)

  • BREAKING: bad conditionals in loader detection (#559)
  • Fix bug in js typegraph loader detection.
  • FIx bug where the cwd for loader was overridden in loader_cmd despite being set in get_loader_cmd.
  • Update to latest ghjk
  • Refresh setup task in whiz.yaml

Motivation and context

The old conditionals were faulty.

Migration notes

  • node and bun loaders are now run with the cwd set to the directory of the typegraph as opposed to the metatype.yml file. This should resolve settings to the nearest package.json despite location.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(cli, typegate) Explicitly import DenoRuntime.import modules from path (#564)

When using the dynamic import function, if you provide it a raw path like /foo/bar/baz and deno detects the current module's loaded from a remote host, it'll convert it to a http url. Reasonable behavior but it turned out to be the cause of #560.

This pr fixes this issue along with:

  • Puts contents of main.ts in a try/catch block for better error logging.
  • Fixes minor permission bugs with the bundled runtime.

Motivation and context

#560

Migration notes

No changes required

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(oauth2-profiler) Fix OAuth2 profiler params (#562)

Pass the appropriate request URL and headers to the profiler resolver.

Motivation and context

It used the provider url instead of the (typegate) request URL, causing internal queries to fail.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(template/node) Update sdk version to 0.3.2 + add deno.static (#558)

Motivation and context

Sync template examples with latest 0.3.2. Added missing deno.static and func.rate(...) on node.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(vscode-extension) Fix publisher name and version (#553)

  • Change the publisher name to metatypedev to match the account name on Azure Devops.
  • Add dev-tools projects to dev/lock.yml for automatic versioning.

Motivation and context

Failure to publish the extension.

  • Non-matching version.

Migration notes

Blank

Checklist

  • The change come with new or modified tests (N/A)
  • Hard-to-understand functions have explanatory comments (N/A)
  • End-user documentation is updated to reflect the change (N/A)

Documentation

(website) Move typegraphs in separate folder + add ts version (#552)

Motivation and context

Better organization + typescript examples.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Features

(node) Node fontend missing features (#557)

Motivation and context

Easier translation from python to typescript typegraph.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(prisma) Add support multi-field ids and id on struct (#556)

Adds support for more advanced id fields and unique constraints:

  • Multi-field id
  • Id on struct (foreign key)
  • Multi-field unique constraints
  • Unique constraint on struct (foreign key)

Motivation and context

Support these kind of construct:

user = t.struct(
{
"authProvider": t.string().from_context("provider"),
"profileId": t.string().from_context("profile.id"),
# ...
},
config={"id": ["authProvider", "profileId"]},
).rename("User")

project = t.struct(
{
"id": t.uuid(as_id=True, config=["auto"]),
"owner": g.ref("Account"),
"name": t.string(min=3, pattern="^[A-Za-z_-]$"),
},
config={"unique": [["owner", "name"]]}
).rename("Project")

Migration notes

No migration needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(typegate) Oauth2 token validation endpoint (#567)

Create an oauth2 token validation endpoint: /:tgName/auth/validate.

Motivation and context

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(typegate-rt) Extend typegate runtime (#561)

Extend the typegate runtime with the following queries:

  • findListQueries: find all the queries that returns a list of t.struct.

Motivation and context

Console.

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(vscode-ext) Logo, README, display name, description (#554)

  • Added a better display name and description
  • Added logo and README

Flattened context (#555)

Flatten profile fields in the context.

So instead of

{
provider: 'github',
accessToken: 'xxxxxxxxxxxxxxxxxxxxxxxxxx',
refreshToken: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
refreshAt: 1704717676,
profile: { id: '43663718' },
exp: 1707280877,
iat: 1704688876
}

we would have:

{
provider: 'github',
accessToken: 'xxxxxxxxxxxxxxxxxxxxxxxxxx',
refreshToken: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
refreshAt: 1704717676,
'profile.id': '43663718',
exp: 1707280877,
iat: 1704688876
}

Motivation and context

It was impossible to get the nested id into a from_context injection. Now we can inject .from_context("profile.id").

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Refactor

(ci) workflow_dispatch for release wflow (#546)

  • Manual trigger for release wflow
  • Adds missing ghjk step for vscode-extension release job

Motivation and context

Provides recovery path for when things break.

Migration notes

Doesn't affect end users.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

v0.3.2 - 2024-01-12

Bug Fixes

(ci) Release changelog generation (#542)

Describe your change

Configures the checkout action step in the workflow that generates the workflow to clone the full git history.

Motivation and context

The updates to the release workflow that introduce git cliff based changelogs (back in #487) don't appear to be in effect.

Migration notes

No end user changes required.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(website) Fix docusaurus warnings (#526)

Describe your change

Fix docusaurus warnings on the website

Motivation and context

Solves MET-307

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Fix stage iteration (#540)

Describe your change

  • Fix the iterChildStages function. It does not yield accurate values in some edge cases.
  • Update the testing framework to enable planning without executing on the GraphQLQuery object.

Motivation and context

Sibling stages can be falsely registered as children, for example with the following stages:

getUser.id
getUser.identity
getUser.ideas

Migration notes

No migration needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments (N/A)
  • End-user documentation is updated to reflect the change (N/A)

Features

(cli) Interactive deployment for prisma (#527)

Describe your change

Make the CLI interactive for migration options to development and production databases.

Motivation and context

MET-257

Migration notes

This creates some breaking changes if you use the CLI in a non-interactive way.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(gate) Redis-less mode (#528)

Describe your change

Fallback to MemoryRegister and NoLimiter if typegate is unable to connect to Redis.

Motivation and context

Enable Redis-Less mode.

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(lsp) Simple diagnostics (#496)

Describe your change

Adds a simple LSP implementation for diagnostics.

Motivation and context

Better DX, catch potential errors while editing the typegraph module.

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(prisma) Connect/create many relation (#522)

Describe your change

  • Add missing create: [ ... ] and connect: [ ... ]

Motivation and context

Solves MET-304

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(python_wasi) Vm docking (#520)

Describe your change

  • Bump all WasmEdge dependencies to latest version
  • Replace wasmedge_sdk_bindgen with VmDock

Motivation and context

wasmedge_sdk_bindgen is deprecated, VmDock replaces it entirely.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(sdk/node) Move js deno to node (#539)

Describe your change

Change deno frontend to pure node

Motivation and context

Easier integration.

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Customizable oauth2 profiler (#538)

Describe your change

Enable custom profiler for the std (predefined) Oauth2 providers:

  • Default profiler
  • No profiler
  • Extended default profiler
  • Custom profiler

Motivation and context

We may want for example to add the Github login in the profile in addition to the id.

Migration notes

No migration needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Limited parallel loads (#537)

Describe your change

Limit the number of parallel loads. The default max is the number of CPU cores, but it can be set with the option --max-parallel-loads=N.

Motivation and context

When we have a high number of typegraphs, the loader processes exhaust the CPU load.

Migration notes

No migration needed.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Miscellaneous Tasks

(release) Bump 0.3.2 (#543)

Bump the version of all metatype libs to 0.3.2.

Motivation and context

About to tag the next version.

Migration notes

Change their manifests to point at the new version.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Refactor

(ci) Use ghjk for deps (#495)

Describe your change

This PR merges most of the CI test runs into one and make use of the ghjk tool to install most of the dependencies.

Motivation and context

Improve tool dependency management.

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Use shadow_rs for versions (#523)

Describe your change

Replaces the common::get_version util function with the PKG_VERSION variables extracted from shadow_rs.

If you know of any other opportunities where we can replace things from shadow_rs, we can add them in this PR as wel..

Motivation and context

shadow_rs makes the old function redundant

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Testing

(gate) Add tests with file upload and apollo client (#529)

Describe your change

Add file upload test using raw fetch and apollo client.

Motivation and context

Ensure common uses of upload feature to work.

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

v0.3.1 - 2023-12-08

Bug Fixes

(ci) Release workflow bugs (#518)

Describe your change

Fix the release workflow according to the CI updates from #487.

Motivation and context

Bug.

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Git cliff

v0.3.0 - 2023-12-08

Bug Fixes

(gate) Pushing a typegraph must not timeout (#511)

Describe your change

Retry policy eval one more time if too long

Motivation and context

MET-296

(tests) Use temporary directories for test git repositories (#485)

(xtask) Add support for end of flags and typechecking (#493)

Describe your change

Adds support for end of flags arguments to the cargo x deno test/bench commands.

Motivation and context

Fix an issue that preventing a updating snapshots as implemented in the dev/test.ts script.

Small fixes (#486)

Remove meta prisma subcommand (#490)

Solve MET-292

Typed result and similar (#509)

Describe your change

Fixes datetime return type by returning the value field instead of the whole object.

Motivation and context

Prisma has a $type tag for formatted string such as DateTime, this PR aims to add support for that.

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Fix default argument computation for objects (#510)

Describe your change

Fix the default argument computation. Make non-optional objects optional if all of its fields are optional.

Motivation and context

MET-295

Migration notes

N/A

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change: N/A

Revert deno to 1.38.1 (#516)

Describe your change

Revert the embedded deno to 1.38.1.

Motivation and context

Deno 1.38.2 does not work well with the FFI bindings.

Features

(cli) Actor model (#471)

(cli) Nodejs loader (#515)

Describe your change

Add support for using nodejs runtime to execute and serialize typescript based typegraphs. This also adds support for MCLI_LOADER_CMD that can be used to override the command to exec the typegraphs.

Motivation and context

Previously, meta-cli either used the and python & deno runtimes to serialize the typegraphs. Now that @typegraph/sdk also supports Node.js, users might be developing in environments wher deno runtime is not availaible but node is. This PR provides a way fwd in those cases.

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

(cli) Meta undeploy subcommand (#508)

Describe your change

Add undeploy subcommand to the meta CLI.

Motivation and context

  • Allow user to undeploy a typegraph.
  • We always had resource leak error when deploying a typegraph from a test step. This subcommand would allow us to undeploy the typegraph at the end of the test step.

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change: N/A

(prisma/migrations) Default value on new column (#465)

  • Display a more concise error message for new column that failed the NON NULL constraint during the migration.
  • Enable user to set default value on new NON NULL column.

(sdk,gate) Node information by path (#498)

Describe your change

  • Fixes renamed function in sdk
  • Adds argInfoByPath utility function in typegate.py

Motivation and context

Make the task of fetching type information from the graphql function args easier

Migration notes

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

mt_deno (#466)

Todo in this PR:

  • Expose bench and test sub commands from deno

This approach gives us a binary size of 101 MiB stripped and 143 MiB prior.

Docs update + project structure (#487)

Refactor

(typegraph/core) Remove wrapper types (#489)

Solve MET-260. Wrapper types will be implemented like .rename(...).

  • Remove WithInjection type
  • Remove WithPolicy type
  • Remove WrapperType<T>

Sdk dx (#470)

  • rename apply to reduce
  • move t.ref to g.ref and remove t.proxy
  • rename t.array to t.list
  • standard policies should defined in core
  • remove python* section in metatype.yml

Replace deno_bindgen ffi with v8 Extension ffi (#481)

What's pending:

  • Replace usage and make sure tests run successfully
  • Remove old binding code

Three binaries (#483)

TL;DR

  • meta typegate that uses the ecma sources hosted on GitHub
    • This is configurable using flags
  • cargo x typegate that uses the local sources from ./typegate/src
  • typegate_prod that also uses sources from ./typegate/src as might be found in it's container
    • This behavior is configurable using environment variables

Testing

Move cli e2e test to typegate/tests/e2e (#492)

Describe your change

Move CLI e2e tests to typegate/tests/e2e

Motivation and context

MET-208

Checklist

  • The change come with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Fix tests (#507)

Describe your change

Attempt to fix all the failing tests in the main branch.

  • Test parallelization requires tests to use different:
    • temporary git repositories (previously solved);
    • different port for virtual typegate instances;
    • different database namespace (postgres schema). This applies to e2e/cli/deploy_test.ts and e2e/typegraph/templates_test.ts.
  • A regression was introduced by a previous by a previous PR on the typegraph serialization, that disabled injection for union/either types.
  • Most of the snapshots were outdated.

v0.2.4 - 2023-10-25

Bug Fixes

(sdk) Reduce union/either variant if required in apply syntax (#463)

Fix lock.yml (#459)

Fix lock.yml to set WASM_OPT_VERSION in whiz.yaml

Fix doc typegraphs deployment (#462)

Set metatype version to v0.2.4 (#467)

Features

Pre-registered public policy (#461)

The PolicyId for the public policy was cached in a class variable in Policy. The cache was not valid in a second typegraph defined in the same module.

v0.2.3 - 2023-10-19

Bug Fixes

(gate) Explicit null on query arg (#453)

Solves MET-268 + fixes an edgecase for "weak validation"

Features

(gate,sdk) Update auth interface, better oauth2 (#447)

Remove injected fields from generated types for prisma operations (#448)

Injected fields are skipped when generating types for prisma.

Additional changes:

  • Enable recursive relationships in where filters.
  • Add disconnect, update, upsert, delete, updateMany, deleteMany on nested reletionships for create/update operations.
  • Fix optional union arg validation.

Miscellaneous Tasks

Upgrade wasm-opt (#456)

v0.2.2 - 2023-10-11

Bug Fixes

(gate) Script reload while gate is running (#441)

Features

(sdk) Change rest queries interface (#444)

Stability fixes (#442)

Wasm + change effect none to read (#443)

v0.2.1 - 2023-10-05

Bug Fixes

Update rename logic (#439)

Duplicate the store entry instead of referencing.

Refactor

(typegraph_core) Simplify private rust SDK (#432)

v0.2.0 - 2023-10-04

Features

Release 0.2.0 (#434)

Miscellaneous Tasks

Check that all interfaces are implemented in both sdk (#435)

Hotfix release flow

Hotfix release