1- CREATE MIGRATION m1axchg2g3dqbqj3762e34ypgx6ndkiyr6fpl2niu2elb3d3kr5nfq
1+ CREATE MIGRATION m1nsxvycfjoyjrxdeejwuuovtufkpjn3vxqg3hsxfxrvwcicxtquya
22 ONTO initial
33{
44 CREATE EXTENSION pgcrypto VERSION ' 1.3' ;
55 CREATE EXTENSION auth VERSION ' 1.0' ;
6+
67 CREATE TYPE default :: User {
78 CREATE REQUIRED LINK identity: ext :: auth:: Identity;
89 CREATE REQUIRED PROPERTY name: std :: str ;
910 };
11+
1012 CREATE GLOBAL default :: current_user := (std :: assert_single ((SELECT
1113 default :: User {
1214 id,
@@ -15,12 +17,29 @@ CREATE MIGRATION m1axchg2g3dqbqj3762e34ypgx6ndkiyr6fpl2niu2elb3d3kr5nfq
1517 FILTER
1618 (.identity = GLOBAL ext :: auth:: ClientTokenIdentity)
1719 )));
20+
1821 CREATE TYPE default :: BlogPost {
19- CREATE REQUIRED LINK author: default :: User;
22+ CREATE REQUIRED LINK author: default :: User {
23+ SET default := (GLOBAL default :: current_user);
24+ };
2025 CREATE ACCESS POLICY author_has_full_access
2126 ALLOW ALL USING ((.author ?= GLOBAL default :: current_user));
2227 CREATE ACCESS POLICY others_read_only
2328 ALLOW SELECT ;
24- CREATE REQUIRED PROPERTY text: std :: str ;
29+ CREATE PROPERTY content: std :: str {
30+ SET default := ' My super blog post.' ;
31+ };
32+ CREATE PROPERTY description: std :: str {
33+ SET default := ' My blog post description.' ;
34+ };
35+ CREATE PROPERTY title: std :: str {
36+ SET default := ' My blog super blog post title.' ;
37+ };
38+ };
39+
40+ ALTER TYPE default :: User {
41+ CREATE MULTI LINK posts: default :: BlogPost {
42+ ON SOURCE DELETE DELETE TARGET ;
43+ };
2544 };
2645};
0 commit comments