github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/registry/appws.vsql (about)

     1  -- Copyright (c) 2021-present unTill Pro, Ltd.
     2  -- @author Denis Gribanov
     3  
     4  ALTER WORKSPACE AppWorkspaceWS (
     5  
     6  	TABLE Login INHERITS CDoc (
     7  		ProfileCluster int32 NOT NULL,
     8  		PwdHash bytes NOT NULL,
     9  		AppName varchar NOT NULL,
    10  		SubjectKind int32,
    11  		LoginHash varchar NOT NULL,
    12  		WSID int64,                                     -- to be written after workspace init
    13  		WSError varchar(1024),                          -- to be written after workspace init
    14  		WSKindInitializationData varchar(1024) NOT NULL
    15  	);
    16  
    17  	TYPE CreateLoginParams (
    18  		Login text NOT NULL,
    19  		AppName text NOT NULL,
    20  		SubjectKind int32 NOT NULL,
    21  		WSKindInitializationData text(1024) NOT NULL,
    22  		ProfileCluster int32 NOT NULL
    23  	);
    24  
    25  	TYPE CreateLoginUnloggedParams (
    26  		Password text NOT NULL
    27  	);
    28  
    29  	TYPE IssuePrincipalTokenParams (
    30  		Login text NOT NULL,
    31  		Password text NOT NULL,
    32  		AppName text NOT NULL
    33  	);
    34  
    35  	TYPE IssuePrincipalTokenResult (
    36  		PrincipalToken text NOT NULL,
    37  		WSID int64 NOT NULL,
    38  		WSError text(1024) NOT NULL
    39  	);
    40  
    41  	TYPE ChangePasswordParams (
    42  		Login text NOT NULL,
    43  		AppName text NOT NULL
    44  	);
    45  
    46  	TYPE ChangePasswordUnloggedParams (
    47  		OldPassword text NOT NULL,
    48  		NewPassword text NOT NULL
    49  	);
    50  
    51  	TYPE InitiateResetPasswordByEmailParams (
    52  		AppName text NOT NULL,
    53  		Email text NOT NULL,
    54  		Language text
    55  	);
    56  
    57  	TYPE InitiateResetPasswordByEmailResult (
    58  		VerificationToken text NOT NULL,
    59  		ProfileWSID int64 NOT NULL
    60  	);
    61  
    62  	TYPE IssueVerifiedValueTokenForResetPasswordParams (
    63  		VerificationToken varchar(32768) NOT NULL,
    64  		VerificationCode text NOT NULL,
    65  		ProfileWSID int64 NOT NULL,
    66  		AppName text NOT NULL
    67  	);
    68  
    69  	TYPE IssueVerifiedValueTokenForResetPasswordResult (
    70  		VerifiedValueToken text NOT NULL
    71  	);
    72  
    73  	TYPE ResetPasswordByEmailParams (
    74  		AppName text NOT NULL
    75  	);
    76  
    77  	TYPE ResetPasswordByEmailUnloggedParams (
    78  		Email text NOT NULL VERIFIABLE,
    79  		NewPwd text NOT NULL
    80  	);
    81  
    82  	VIEW LoginIdx (
    83  		AppWSID int64 NOT NULL,
    84  		AppIDLoginHash text NOT NULL,
    85  		CDocLoginID ref(Login) NOT NULL,
    86  		PRIMARY KEY((AppWSID), AppIDLoginHash)
    87  	) AS RESULT OF ProjectorLoginIdx;
    88  
    89  	EXTENSION ENGINE BUILTIN (
    90  		COMMAND CreateLogin (CreateLoginParams, UNLOGGED CreateLoginUnloggedParams);
    91  		COMMAND ChangePassword (ChangePasswordParams, UNLOGGED ChangePasswordUnloggedParams);
    92  		COMMAND ResetPasswordByEmail (ResetPasswordByEmailParams, UNLOGGED ResetPasswordByEmailUnloggedParams);
    93  		QUERY IssuePrincipalToken (IssuePrincipalTokenParams) RETURNS IssuePrincipalTokenResult;
    94  		QUERY InitiateResetPasswordByEmail (InitiateResetPasswordByEmailParams) RETURNS InitiateResetPasswordByEmailResult;
    95  		QUERY IssueVerifiedValueTokenForResetPassword (IssueVerifiedValueTokenForResetPasswordParams) RETURNS IssueVerifiedValueTokenForResetPasswordResult;
    96  		SYNC PROJECTOR ProjectorLoginIdx AFTER INSERT ON Login INTENTS(View(LoginIdx));
    97  		PROJECTOR InvokeCreateWorkspaceID_registry AFTER INSERT ON(Login);
    98  	);
    99  );