github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/state/teststate/testsys/system.sql (about) 1 -- Copyright (c) 2020-present unTill Pro, Ltd. 2 3 -- note: this schema is for tests only. Voedger sys package uses copy of this schema 4 5 ABSTRACT TABLE CRecord(); 6 ABSTRACT TABLE WRecord(); 7 ABSTRACT TABLE ORecord(); 8 ABSTRACT TABLE CDoc INHERITS CRecord(); 9 ABSTRACT TABLE ODoc INHERITS ORecord(); 10 ABSTRACT TABLE WDoc INHERITS WRecord(); 11 ABSTRACT TABLE CSingleton INHERITS CDoc(); 12 ABSTRACT WORKSPACE Workspace( 13 EXTENSION ENGINE WASM( 14 COMMAND NewWorkspace(); 15 ); 16 ); 17 ALTERABLE WORKSPACE Profile(); 18 19 TABLE WorkspaceDescriptor INHERITS CSingleton ( 20 WSKind qname NOT NULL 21 ); 22 23 TYPE Raw( 24 Body varchar(65535) 25 ); 26 27 EXTENSION ENGINE BUILTIN ( 28 29 STORAGE Record( 30 /* 31 Key: 32 ID int64 // used to identify record by ID 33 Singletone QName // used to identify singleton 34 */ 35 GET SCOPE(COMMANDS, QUERIES, PROJECTORS), 36 GETBATCH SCOPE(COMMANDS, QUERIES, PROJECTORS), 37 INSERT SCOPE(COMMANDS), 38 UPDATE SCOPE(COMMANDS) 39 ) ENTITY RECORD; 40 41 -- used to validate projector state/intents declaration 42 STORAGE View( 43 GET SCOPE(COMMANDS, QUERIES, PROJECTORS), 44 GETBATCH SCOPE(COMMANDS, QUERIES, PROJECTORS), 45 READ SCOPE(QUERIES, PROJECTORS), 46 INSERT SCOPE(PROJECTORS), 47 UPDATE SCOPE(PROJECTORS) 48 ) ENTITY VIEW; 49 50 STORAGE WLog( 51 /* 52 Key: 53 Offset int64 54 Count int64 (used for Read operation only) 55 Value 56 RegisteredAt int64 57 SyncedAt int64 58 DeviceID int64 59 Offset int64 60 Synced bool 61 QName qname 62 CUDs []value { 63 IsNew bool 64 ...CUD fields... 65 } 66 */ 67 GET SCOPE(COMMANDS, QUERIES, PROJECTORS), 68 READ SCOPE(QUERIES, PROJECTORS) 69 ); 70 71 STORAGE AppSecret( 72 /* 73 Key: 74 Secret text 75 Value: 76 Content text 77 */ 78 GET SCOPE(COMMANDS, QUERIES, PROJECTORS) 79 ); 80 81 STORAGE RequestSubject( 82 /* 83 Key: empty 84 Value: 85 ProfileWSID int64 86 Kind int32 87 Name text 88 Token texts 89 */ 90 GET SCOPE(COMMANDS, QUERIES) 91 ); 92 93 STORAGE Http( 94 /* 95 Key: 96 Method text 97 Url text 98 Body []byte 99 HTTPClientTimeoutMilliseconds int64 100 Header text (can be called multiple times) 101 Value: 102 StatusCode int32 103 Body []byte 104 Header text (headers combined) 105 106 */ 107 READ SCOPE(QUERIES, PROJECTORS) 108 ); 109 110 STORAGE FederationCommand( 111 /* 112 Key: 113 Owner text (optional, default is current app owner) 114 AppName text (optional, default is current app name) 115 WSID int64 (optional, default is current workspace) 116 Token text (optional, default is system token) 117 Command qname 118 Body text 119 Value: 120 StatusCode int32 121 NewIDs value { 122 rawID1: int64 123 rawID2: int64 124 ... 125 } 126 Result: value // command result 127 */ 128 GET SCOPE(QUERIES, PROJECTORS) 129 ); 130 131 STORAGE SendMail( 132 /* 133 Key: 134 From text 135 To text 136 СС text 137 BCC text 138 Host text - SMTP server 139 Port int32 - SMTP server 140 Username text - SMTP server 141 Password text - SMTP server 142 Subject text 143 Body text 144 145 */ 146 INSERT SCOPE(PROJECTORS) 147 ); 148 149 STORAGE Result( 150 /* 151 Key: empty 152 ValueBuilder: depends on the result of the Command or Query 153 */ 154 INSERT SCOPE(COMMANDS, QUERIES) 155 ); 156 157 STORAGE Response( 158 /* 159 Key: empty 160 ValueBuilder: 161 StatusCode int32 162 ErrorMessage text 163 */ 164 INSERT SCOPE(COMMANDS, QUERIES) 165 ); 166 167 STORAGE Event( 168 /* 169 Key: empty 170 Value 171 WLogOffset int64 172 Workspace int64 173 RegisteredAt int64 174 SyncedAt int64 175 DeviceID int64 176 Offset int64 177 Synced bool 178 QName qname 179 Error value { 180 ErrStr text 181 ValidEvent bool 182 QNameFromParams qname 183 } 184 ArgumentObject value 185 CUDs []value { 186 IsNew bool 187 ...CUD fields... 188 } 189 */ 190 GET SCOPE(PROJECTORS) 191 ); 192 193 STORAGE CommandContext( 194 /* 195 Key: empty 196 Value 197 Workspace int64 198 WLogOffset int64 199 ArgumentObject value 200 ArgumentUnloggedObject value 201 */ 202 GET SCOPE(COMMANDS) 203 ); 204 205 STORAGE QueryContext( 206 /* 207 Key: empty 208 Value 209 Workspace int64 210 WLogOffset int64 211 ArgumentObject value 212 */ 213 GET SCOPE(QUERIES) 214 ); 215 )