Skip to content

Releases: metatypedev/metatype

v0.5.1-rc.0

05 Feb 06:36
47d1005
Compare
Choose a tag to compare

v0.5.1-rc.0 - 2025-02-05

Bug Fixes

(cli) Avoid expected error backtrace (#960)

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

Summary by CodeRabbit

  • Chores
  • Updated error reporting configuration to reduce verbosity during panic
    events.
Secret leak when recovering (#965)

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

Release Notes

  • New Features

  • Added a deep cloning utility function to prevent unintended data
    mutations

  • Introduced a new workflow management capability with a sayHello
    function

    • Enhanced replay request filtering in agent runtime
  • Improvements

    • Refined runtime configuration handling
    • Improved code modularity and error handling in agent runtime
  • Testing

    • Updated sync test configuration with new Redis backend
    • Added new workflow test script

Support union type for object node in apply tree (#969)
  • Solve
    MET-790
    • Support union type or object node in apply tree

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

Summary by CodeRabbit

  • New Features

    • Enhanced type handling for optional and union types
    • Added support for complex GraphQL query retrieval
  • Introduced new method for filtering user records with advanced
    conditions

  • Tests

    • Added test case for complex object retrieval
    • Expanded test coverage for union type processing
  • Improvements

    • Refined error reporting for type resolution
    • Improved handling of optional and union type definitions
Metagen papercuts (#950) - BREAKING: metagen papercuts (#950)

Solves
MET-761:

  • Make generator naming consistent with the client_xx and fdk_xx format.
    Prefer shortened names of languages like the extension name of source
    files.
  • Reuse a typegraph serialization across multiple generation runs in a
    single cli invocation. It currently re-serializes a typegraph if it's
    referenced twice.
  • Explicit return types on QueryGraph methods for Typescript
  • Support for non-record queries for Gql transport. Currently, one's
    forced to name the query/mutation section which gets reflected in the
    response name

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

Summary by CodeRabbit

Based on the comprehensive summary, here are the high-level release
notes:

  • Generator Naming

    • Simplified generator names across the project
    • Updated from fdk_typescriptfdk_ts
    • Updated from fdk_pythonfdk_py
    • Updated from fdk_rustfdk_rs
  • Type Management

  • Transitioned from Box<Typegraph> to Arc<Typegraph> for improved
    memory management

    • Enhanced type flexibility in query and mutation methods
    • Added support for single and multiple node operations
  • New Features

  • Added identity and identity update functions across TypeScript,
    Python, and Rust clients

    • Improved caching mechanisms for typegraphs
    • Enhanced GraphQL transport layer with more flexible input handling
  • Documentation

  • Updated configuration examples and references to reflect new generator
    names

Use GraphQL-compliant response payload on error (#972)
  • Use GraphQL-compliant response payload on error on all GraphQL
    endpoints

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

Summary by CodeRabbit

  • Refactor
  • Consolidated JSON response formatting for both success and error
    cases.
  • Streamlined the handling of response structures across multiple
    service endpoints.
  • Improved consistency and reliability of data returned to clients,
    ensuring structured JSON output for all interactions.
  • Enhanced error handling to provide structured JSON responses across
    various services.
Better error message for missing artifacts (#973)
  • Solve
    MET-821
    • Better error message for missing artifacts
    • Shared logic for artifact registration on postprocess

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

Summary by CodeRabbit

  • New Features

  • Consolidated the artifact registration process to support bulk
    handling of primary and dependency artifacts.

  • Refactor

  • Streamlined registration workflows across multiple runtime
    integrations, enhancing efficiency and clarity.

  • Tests

  • Added comprehensive tests to ensure robust error reporting when
    dependencies are missing.

  • Introduced a new test case to validate behavior for non-existent
    engine scripts.

Documentation

(sub) Polish substantial docs (#967)

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

  • Documentation
    • Enhanced documentation for Substantial runtime.
    • Added new section on Backend operations.
    • Renamed existing Backend section to "Persistence and Lifecycle."
  • Introduced new subsections on workflow management concepts including
    Context, Interrupts, Save, Send/Receive, and Ensure.
  • Added a new...
Read more

v0.5.0

17 Jan 02:10
30d8b1e
Compare
Choose a tag to compare

v0.5.0 - 2025-01-16

Bug Fixes

(gate,sdk) Fail fast on bad credentials before artifact upload (#961)

Solves
MET-793

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

Release Notes

  • New Features

  • Added a ping functionality to verify typegate connectivity and
    credentials

  • Introduced a new server health check mechanism across multiple
    language implementations

  • Improvements

    • Simplified error handling in deployment and query-related functions
    • Enhanced pre-deployment validation process
  • Testing

    • Added test coverage for credential validation during deployment
    • Implemented new test scenarios for typegate connectivity checks
`selectAll` infinite recursion (#948)

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

Summary by CodeRabbit

  • New Features

  • Added nested composite structure support across multiple client
    implementations

    • Enhanced selection handling for composite queries
    • Expanded type definitions for more complex data representations
  • Bug Fixes

    • Improved selection processing logic in client implementations
    • Updated version compatibility for SDK imports
  • Chores

    • Updated package dependencies to newer SDK versions
    • Reformatted and improved code readability across multiple files
Patch proto to latest + update script (#953)

Update protobuf-codegen and protobuff to latest (3.7.1)

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

Summary by CodeRabbit

Release Notes

  • Dependency Updates

    • Updated protobuf library from version 3.5.1 to 3.7.1
    • Updated protobuf-codegen crate to version 3.7.1
  • Build Configuration

  • Modified protobuf compiler output option from --rust_out to
    --rs_out

    • Simplified protobuf code generation command
  • Compatibility

    • Ensured compatibility with latest protobuf runtime version
Bad name on shared types (#955)

Since types can be shared, prefixing the name with the first
function/path encountered would be confusing for the other types that
also refers to it.

This patch disables prefixing for types with more than one referrer.

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

Based on the comprehensive summary of changes across multiple files,
here are the updated release notes:

  • Type System Refinement

    • Standardized type naming conventions across multiple languages.
    • Replaced specific type aliases with more generic scalar types.
    • Updated function signatures to use simplified type definitions.
  • Version Updates

    • Incremented metatype version from "0.5.0-rc.8" to "0.5.0-rc.9".
  • Upload Functionality

  • Modified file upload method return types to return boolean instead of
    complex output.

    • Updated argument types for upload-related functions.
  • Performance and Naming Improvements

    • Enhanced reference counting for type naming processor.
    • Refined type generation logic with more consistent naming strategies.

These changes primarily focus on improving type system consistency and
simplifying type definitions across different runtime environments.

Where type issues (#958)
  • Fixes issues with type counts.

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

Summary by CodeRabbit

  • New Features

    • Enhanced duplicate detection mechanism for type graphs.
    • Improved type identification and relationship tracking.
  • Added new root functions for dynamic entity management in type
    duplication.

  • Refactor

    • Updated model identifier handling in type generation.
  • Modified key management for skip models from type-based to
    string-based keys.

  • Transitioned from static to dynamic entity definitions for
    scalability.

  • Bug Fixes

    • Streamlined type duplicate detection logic.
    • Improved error handling for unsupported type scenarios.
  • Adjusted assertions for serialization size and type count limits in
    tests.

Features

Python code validation (#939)

Add python code validation on deploy

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
Add json schema (#952)

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

Summary by CodeRabbit

  • New Features

  • Added comprehensive configuration schema validation for Metatype
    system configuration files.

  • Implemented JSON schema testing to ensure configuration integrity
    across multiple YAML files.

  • Tests

  • Introduced new test suite for validating configuration schema using
    Ajv JSON schema validator.

Unify worker manager (#954)
  • Solves
    MET-667
    • BaseWorkerManager
    • Use in Deno runtime
    • Use in Python runtime (followup PR)
    • Use in Rust runtime (followup PR)
    • Worker pooling (followup PR)

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

Summary by CodeRabbit

Summary by CodeRabbit

Based on the comprehensive summary, here are the updated release notes:

  • New Features
  • Enhanced worker management system with improved task tracking and
    execution.
  • Introduced new WorkerManager for more robust Deno runtime
    operations.
    • Added support for inline artifact generation and management.
  • New asynchronous metho...
Read more

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