feat: release Dever 0.1.5 with direct workers and long transactions

This commit is contained in:
Codex committed 2026-10-11 11:17:33 +00:00
1 parent 89629c2197
commit a900d7e8db
153 files changed
+3676 -3708

No files matched your search

+13 -11
View File
@@ -22,7 +22,7 @@ fn diagnostics(sources: &SourceMap) -> String {
// Code-generation assertions may inspect unbound HIR; an executable API must
// use the same configured site/auth contract as the CLI.
fn compile_authenticated_rest(mut sources: SourceMap) {
fn compile_authenticated_rest(mut sources: SourceMap, user_id_type: &str) {
sources.add("access/user/model.dever", "global type User { name: Text }");
sources.add(
"access/tenant/model.dever",
@@ -30,16 +30,18 @@ fn compile_authenticated_rest(mut sources: SourceMap) {
);
sources.add(
"access/session/app.dever",
r#"type Identity {
format!(
r#"type Identity {{
id: Text
user_id: access.user.model.id?
user_id: {user_id_type}?
tenant_id: access.tenant.model.id?
}
verify(claims: dever.auth.Claims) (identity: Identity) {
identity = Identity { id = claims.subject
}}
verify(claims: dever.auth.Claims) (identity: Identity) {{
identity = Identity {{ id = claims.subject
user_id = null
tenant_id = null }
}"#,
tenant_id = null }}
}}"#
),
);
let directory = TemporaryDirectory::new();
std::fs::create_dir(directory.path().join("config")).unwrap();
@@ -109,7 +111,7 @@ fn rest_derives_the_public_model_without_an_app_wrapper() {
assert!(generated.contains("transaction.commit().await"));
assert!(generated.contains("rest_rollback(transaction).await"));
assert!(generated.contains("dever_runtime::api::text_bounds(\"name\""));
compile_authenticated_rest(sources);
compile_authenticated_rest(sources, "access.user.model.id");
}
#[test]
@@ -184,7 +186,7 @@ fn rest_owner_is_server_bound_and_scopes_every_database_statement() {
] {
assert!(generated.contains(sql), "missing {sql}: {generated}");
}
compile_authenticated_rest(sources);
compile_authenticated_rest(sources, "user.account.model.id");
}
#[test]
@@ -378,7 +380,7 @@ fn rest_field_bindings_are_checked_and_emit_static_search_sql() {
generated.contains("SELECT COUNT(*) FROM \\\"profile\\\" WHERE \\\"user_id\\\" = ?1"),
"{generated}"
);
compile_authenticated_rest(sources);
compile_authenticated_rest(sources, "user.account.model.id");
}
#[test]