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  )