Releases: metatypedev/metatype
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
v0.5.0-rc.1
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
(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...