Skip to content

Releases: metatypedev/metatype

v0.5.0-rc.9

25 Dec 10:01
6b68642
Compare
Choose a tag to compare

v0.5.0-rc.9 - 2024-12-25

Bug Fixes

Broken deno runtime secret injection (#946)
  • Bumps to 0.5.0-rc.9
  • Fixes bug with deno secret injection

Migration notes


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

Features

(gate,sdk) New policy spec (#937) - BREAKING: new policy spec (#937)

Migration notes

  • Replaced true, false, and null to ALLOW, DENY and PASS.

Composition rules:

  1. On traversal order:
  • ALLOW: allow parent and all its children (ignore inner policies)
  • DENY: deny parent and all its children (ignore inner policies)
  • PASS: pass through parent and evaluate each children (no-op,
    equivalent to no policies)
  1. On a single type (a.with_policy(X).with_policy(Y)):

ALLOW and DENY compose the same as true and false with the AND gate,
PASS does not participate.

  • ALLOW & P = P
  • DENY & P = DENY (e.g. DENY & ALLOW = DENY)
  • PASS & P = P (does not participate)
  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Summary by CodeRabbit

Release Notes

  • New Features

  • Enhanced documentation for Metatype's mental model, including clearer
    policy definitions and a comparison table with classical models.

  • Introduction of a comprehensive tutorial on building a Metatype API,
    covering setup, CRUD operations, and security practices.

  • Bug Fixes

  • Updated policy logic to return explicit 'ALLOW' or 'DENY' strings
    instead of boolean values across various components.

  • Documentation

  • Improved clarity and detail in documentation for policies and core
    concepts.

    • Added new sections for policy composition rules and traversal order.
  • Refactor

  • Streamlined policy management and evaluation logic across multiple
    files, enhancing clarity and maintainability.

  • Tests

  • Added tests for new policy functionalities and updated existing tests
    to reflect changes in policy handling.


v0.5.0-rc.8

16 Dec 23:48
ea8711f
Compare
Choose a tag to compare

v0.5.0-rc.8 - 2024-12-16

Bug Fixes

(gate) Cache deno imports on deploy (#925)

Migration notes


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

(metagen) Client file upload fixup (#936)
  • Make reusable file on multiple path for python and added tests for TS
    and Python.

Migration notes


  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
Type duplication bug (#938)
  • Fixes bug in type-deduplication impl.
  • Fixes issues with very long names generated by prisma where types.
  • Fix bug where duplicate names end up in typegraph
  • Tests to avoid type size and duplication regressions
  • Bumps version to 0.5.0-rc.8

Migration notes


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

Features

(metagen) Python client file upload (#931)

Migration notes


  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
(metagen) Typescript client file upload (#934)

Migration notes


  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
(subs,deno) Advanced filters + context util + replay aware logger (#930)

Solves
MET-720,
MET-749
and
MET-760.

Basic overview

Given an expression tree, a field can represent either an operator
(e.g., and, or, lte, etc.) or a 'special' field (started_at, ended_at,
status).

We can now answer queries such as: 'List all failed runs that started
between x and y but did not end at z, where the value is not null, or
alternatively completed but returned null'

Injection on output types (outjection) (#935)
  • Solve
    MET-140
    • Enable injection on output
  • Solve
    MET-47
    • test from parent injection for either/union types

Migration notes

  • N/A

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

Miscellaneous Tasks

Improve ux, installer (#932)

Migration notes


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

v0.5.0-rc.7

28 Nov 06:30
822437b
Compare
Choose a tag to compare

v0.5.0-rc.7 - 2024-11-28

Bug Fixes

Fix secret hydration (#918)
  • Fix secret hydration
  • Fix Google OAuth2 profile type

Migration notes

N/A


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

Features

(metagen) Add file upload support for Rust client (#893)

Solve
MET-629
(Part 1)

  • Add file upload support to Rust metagen client

Migration notes

N/A

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
(sdk) Unify JS/TS imports (#926) - BREAKING: unify JS/TS imports (#926)

Solves
MET-737:

  • Unify JS/TS imports
  • Add more test for the published packages: test JSR and NPM
    packages on Nodejs and Deno, with the same typegraph definitions.
    (on
    a follow-up PR after the next release
    )
  • Prepare for version 0.5.0-rc.7

Migration notes

BREAKING CHANGES:

  • TypeScript SDK imports for should be changed on Deno, removing the
    .ts extension:
    • @typegraph/sdk/index.ts --> @typegraph/sdk
    • @typegraph/sdk/*.ts --> @typegraph/sdk/*

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

Miscellaneous Tasks

Remove meta-lsp (#903) - BREAKING: remove meta-lsp (#903)
  • Remove meta-lsp and all parts related to it.
    (MET-722)
  • ...

Migration notes


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

v0.5.0-rc.6

16 Nov 11:16
0273360
Compare
Choose a tag to compare

v0.5.0-rc.6 - 2024-11-14

Bug Fixes

(cli) Implement `--prefix` argument (#913)

Migration notes


  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
(cli) Deployment after reloading config (#917)
  • Fixes typegraph deployment bug using meta dev after changing
    metatype.yml and added more watcher tests.

Migration notes


  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
(subs) Disable save/kwargs mutation + better `LOG_LEVEL` (#915)

Tackles
MET-724
and
MET-730
.

  • A reference to run.kwargs should not be exposed directly, the
    kwargs used by the user should be a deep copy.
  • save now returns a deep copy of the returned value
  • noisy debug logs on substantial agent (disabled by default)

Migration notes

save will always refer to a deep clone of a value throughout the
initial run/replay.

const example = await ctx.save(() => someRef);
someRef.field = "changed!"; // will not affect example
  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change

Remove prisma count (#916)
  • Remove prisma count operation: it does not work, making it work like
    on the prisma client would complicate the prisma runtime (until we have
    output transformations...); Use aggregate instead.
  • Increase the delay before exiting the process on the nodejs typegraph
    client to give the CLI time to process all the output.
  • Remove quaint logs on the typegate (too verbose).

Migration notes


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

Documentation

`/docs/reference/graphql` (#875)
  • Adds page /docs/reference/graphql

v0.5.0-rc.5

10 Nov 15:30
d669167
Compare
Choose a tag to compare

v0.5.0-rc.5 - 2024-11-10

Bug Fixes

Meta dev does not exit properly upon `SIGTERM` (#895)

Migration notes

None

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
Fix optional field filter in apply (#909)
  • Fix the optional field filter on apply: resolve types before matching.

Migration notes

No migrations needed.


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

Documentation

Grpc annoucement blog (#872)

Migration notes

...

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

Features

(cli) Watch artifacts (#897)
  • ...

Migration notes


  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
Substantial function secrets support (#908)
  • Add support for passing secrets to substantial workflows
  • Bump version to 0.5.0-rc5

  • The change comes with new or modified tests

Miscellaneous Tasks

License change to MPL Version 2.0 (#899) - BREAKING: license change to MPL Version 2.0 (#899)

Migration notes

All license headers has changed to MPL 2.0.

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

v0.5.0-rc.4

05 Nov 06:51
43faf11
Compare
Choose a tag to compare

v0.5.0-rc.4 - 2024-11-05

Bug Fixes

(typegraph) Send rpc message in chunks in the TS typegraph client (#904)
  • Send the JSON-RPC message is chunks in the TypeScript typegraph client
    to prevent reaching the line size limit for stdout. Note: we could not
    reproduce the issue locally as it only occurs when using the published
    package for Node.js.
  • Use JSON-RPC notification for logging and report from the typegraph
    clients.
  • Other changes:
    • Use relative paths for static task sources in the CLI;
  • Fix TODO in meta gen: pass the working directory on the
    working_dir param of SerializeActionGenerator::new.

Migration notes

N/A


  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
Speculative fix for `typegate_prisma_test.ts` (#898)
  • Assigns special schemas for each test that relies on the
    runtimes/prisma/prisma.py typegraph.
  • Bumps version tag to 0.5.0-rc4
  • Fixes issues in release pipeline
  • Disables all but the test-full job when the test pipeline is run
    with tmate enabled.

The flakeout of typegate_prisma_test.ts has proved difficult to
recreate. Looking at the code and going from recent similar cases, I
suspect it happens due to the old code reusing the same pg schema for
multiple tests. Assigning special schemas for each tests should
hopefully help.

Migration notes

N/A


  • The change comes with new or modified tests

v0.5.0-rc.3

30 Oct 06:35
bb42c00
Compare
Choose a tag to compare

v0.5.0-rc.3 - 2024-10-30

Bug Fixes

Update license file (#890)

PR Summary

Commit d84e4ed moved the
LICENSE-MPL-2.0.md file. This PR adjusts sources to changes.

Migration notes

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
Minor bug fixes (#894)
  • Bug with typegraph context reset around deno_modules
  • Bug with typegate onPush hook error detection and typegraph parsing of
    such errors
  • Bug with artifact resolution when they're reused.
  • Bug with return type of the KvRuntime get functions
  • Bumps metatype to 0.5.0-rc.3

Migration notes

N/A


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

Documentation

Add substantial (#891)
  • docs
  • N/A

Migration

N/A

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

v0.5.0-rc.2

24 Oct 18:37
042ae80
Compare
Choose a tag to compare

v0.5.0-rc.2 - 2024-10-24

Bug Fixes

Fix `.apply` serialization error with optional structs (#886)
  • Fix the error on .apply when the apply tree goes beyond an optional
    struct, mostly changing the implementation of resolve_optional method.
  • Improve the errors when we encounter an exception raise by
    Result::Err from typegraph_core.

Migration notes

...

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

Features

Add GraphQL alias support for prisma runtime (#887)
  • Add GraphQL alias support for prisma runtime

Migration notes

...

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

v0.5.0-rc.1

22 Oct 20:46
54558c7
Compare
Choose a tag to compare

v0.5.0-rc.1 - 2024-10-22

Bug Fixes

(ci) Disable sccache when secrets not avail (#874)
  • Makes sccache optional so PRs from dependabot and forks can still run
    the test suite.
  • Increases sccache allotment to 50g.

(cli) Change default installation directory (#873)
  • Remplacement PR for #843.
  • ...

Migration notes

...

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

(docs) Grpc docs (#852)

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
(gate) Make __typename returns the variant name on unions (#838)
  • Add missing implementation for static injection for parameter
    transformations on the typegate
  • Solves
    MET-642:
    Fix the __typename result on union variants: return the variant name
    instead of the parent type name

Migration notes

N/A

Checklist

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
(subs) Key collision on redis (#865)

Follow up of #863
When multiple start occurs for redis, some schedules can happen
exactly at the same time resulting into the same identifier (and
leading to an inconsistent state).

This solution simply combines the schedule with the run_id making it
unique instead of using it as is.

mutation AllAtOnce {
  a: start_retry(kwargs: { .. }) # => calls add_schedule( ... date ...)
  b: start_retry(kwargs: { .. })
  c: start_retry(kwargs: { .. })
  d: start_retry(kwargs: { .. }) 
  e: start_retry(kwargs: { .. })
  f: start_retry(kwargs: { .. })
 # ..
}

Migration notes

None

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
Fix missing images (#847)

Fix missing images for durable execution blog

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
Improve name generation for prisma types (#849)

Solve
MET-657

Migration notes

...

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

Documentation

(blog) Running python with WebAssembly part 1 (#823)

Running python with webassembly (part 1)

Migration notes

None

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

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

  • Introduced a comprehensive guide for integrating Python runtime with
    WebAssembly (WASI) in the Metatype ecosystem.

  • Detailed the advantages of using WebAssembly over Docker for platform
    independence and resource management.

  • Provided technical requirements and a refined solution for executing
    Python scripts in a sandboxed environment.

  • Expanded vocabulary with new relevant terms for enhanced text
    processing and validation.

  • Documentation

  • Updated YAML configuration structure in documentation for clarity on
    type gate usage.


`/docs/reference/typegraph/client` (#777)

Pre-documentation for the code-first queries feature.

Migration notes

...

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

Features

(dev) Typegraph explorer (#859)
  • Add a web version of tree-view which is more interactive
  • Enable typegraph serialization without metatype.yml config file

image

(gate) Empty object as custom scalar (#876)
  • Allow empty object on the output without any change
  • Just like Int, String, and such, rightfully refer the constant
    {} as a scalar
  • Any empty object will now be refered as EmptyObject scalar

Migration notes

None

  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
(mdk) Overridable templates (#842)

Solve
MET-630

  • Make templates in the static sections overridable
    • mdk_rust
    • mdk_python
    • mdk_typescript
  • Add a CLI tool to generate extract the default template

Migration notes

No changes needed.


  • The change comes with new or modified tests
  • Hard-to-understand functions have explanatory comments
  • End-user documentation is updated to reflect the change
(metagen) Union/either for clients (#857)
  • Add union support for the client_xx metagen implementations.

There are still some edge cases especially around variant identification
in the client languages. I tried many things but our hands are tied by
serde. Basically, users will have to be careful when designing their
union types to avoid ambiguity cases. Hopefully,
674
will help there.

Migration notes

...

  • The change comes with new or modified tests
  • Hard-to-u...
Read more

v0.4.10

04 Sep 12:43
67c1d0f
Compare
Choose a tag to compare

v0.4.10 - 2024-09-04

Miscellaneous Tasks

Bump to v0.4.10 (#835)
  • Bump v0.4.10