Releases: metatypedev/metatype
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...