Releases: metatypedev/metatype
v0.5.1-rc.0
v0.5.1-rc.0 - 2025-02-05
Bug Fixes
(cli) Avoid expected error backtrace (#960)
- Closes
MET-801.
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_typescript
→fdk_ts
- Updated from
fdk_python
→fdk_py
- Updated from
fdk_rust
→fdk_rs
-
Type Management
-
Transitioned from
Box<Typegraph>
toArc<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...
v0.5.0
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)
- Closes
MET-786.
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
- Updated
-
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)
- Add a self-hosted json schema that will be referenced to
schemastore, part of
MET-798.
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...
v0.5.0-rc.9
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:
- 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)
- 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 = PDENY
& 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
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)
- Closes
MET-769
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)
- Closes
MET-768.
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
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(on
packages on Nodejs and Deno, with the same typegraph definitions.
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
v0.5.0-rc.6
v0.5.0-rc.6 - 2024-11-14
Bug Fixes
(cli) Implement `--prefix` argument (#913)
- Fixes
MET-738.
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)
- 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
v0.5.0-rc.5
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)
- Solve MET
710.
- ...
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
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 ofSerializeActionGenerator::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
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
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 ofresolve_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