Compare commits
61 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
faf4ac4465
|
|||
|
0ab540e9c0
|
|||
| 03aaf185f7 | |||
| 219a8e107d | |||
| ce274776a6 | |||
| aac5d5e784 | |||
| 552bd3c428 | |||
| 21c190e5a5 | |||
| fe1f8ca568 | |||
| ecb8eed62c | |||
| 3d1e544c00 | |||
|
dd0c898404
|
|||
|
f496cb4d32
|
|||
|
ff86d65eb3
|
|||
|
f23d1251b5
|
|||
|
5eb260df3a
|
|||
|
72cb1d8117
|
|||
|
0cd6107abe
|
|||
|
4b1ff1c31d
|
|||
| 5df728fd9c | |||
| 3e699c2082 | |||
| cc0bd514d5 | |||
| 8a0c7451fb | |||
| 9d8a2d160a | |||
| 88aefe7d13 | |||
| 1b6a64aa46 | |||
| 114de30b57 | |||
| 434f74756f | |||
|
32d46850a5
|
|||
| 254f1697d8 | |||
| 36af98b186 | |||
| 6ecb53aecd | |||
| e21e98568b | |||
| 8e64e1ca1f | |||
| 3779679504 | |||
| f7729a595b | |||
| 6a95269cef | |||
|
8b560247e4
|
|||
|
b3ceb01bfb
|
|||
|
46ac6fcea5
|
|||
|
2fdaac14c6
|
|||
|
53b8db78dd
|
|||
|
749a399197
|
|||
|
6396711ba7
|
|||
|
b71c028f88
|
|||
|
eeeedde123
|
|||
|
8660dea75b
|
|||
|
014cc162b2
|
|||
|
208bc84c74
|
|||
|
5affc6bb04
|
|||
|
d0354d77f1
|
|||
|
b6cd325104
|
|||
|
79d2cedc3e
|
|||
|
7b2eef8657
|
|||
|
22c5992046
|
|||
|
c57abc00f6
|
|||
|
db54a552ac
|
|||
|
c92810ad5b
|
|||
|
cdd45c2707
|
|||
|
6f3d8b9b42
|
|||
|
01e0904fa6
|
@@ -21,25 +21,57 @@ jobs:
|
||||
with:
|
||||
token: ${{ gitea.token }}
|
||||
path: ./
|
||||
|
||||
- name: install tea cli and init
|
||||
run: |
|
||||
mkdir tmp && cd tmp
|
||||
curl -SsOL https://dl.gitea.com/tea/main/tea-main-linux-amd64.xz
|
||||
apt install xz-utils -y >/dev/null
|
||||
xz -d tea-main-linux-amd64.xz
|
||||
mv tea-main-linux-amd64 /usr/bin/tea
|
||||
chmod +x /usr/bin/tea
|
||||
cd ..
|
||||
rm -rf tmp
|
||||
tea --version
|
||||
tea login add \
|
||||
--name ${{ gitea.server_url }} \
|
||||
--token ${{ secrets.PROD_REG_TOKEN }} \
|
||||
--url ${{ gitea.server_url }}
|
||||
- run: go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
|
||||
- run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
|
||||
- run: go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@latest
|
||||
- run: npm install --save @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf
|
||||
- run: buf --version
|
||||
- run: "export PATH=$PATH:./node_modules/.bin\nbuf generate \n"
|
||||
- run: |
|
||||
if [ -n ${{ gitea.ref_name }} ]; then
|
||||
mkdir .res
|
||||
- name: tar files
|
||||
run: |
|
||||
ls -l ./stub
|
||||
for out in go ts doc; do
|
||||
echo releasing ${out} ...
|
||||
tar czf .res/${out}.tar.gz ./stub/${out}/
|
||||
curl -Ss --user ${{ gitea.actor}}:${{ gitea.token}}\
|
||||
--upload-file .res/${out}.tar.gz \
|
||||
${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz
|
||||
done
|
||||
echo releasing proto ...
|
||||
tar czf ./.res/src.tar.gz $(find -type f -name "*.proto")
|
||||
curl -Ss --user ${{ gitea.actor}}:${{ gitea.token}}\
|
||||
--upload-file ./.res/src.tar.gz \
|
||||
${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/src.tar.gz
|
||||
fi
|
||||
tar czf ./.res/src.tar.gz $(find -type f -name "*.proto")
|
||||
tea r c \
|
||||
--title "${{ gitea.ref_name }}" \
|
||||
--tag "${{ gitea.ref_name }}" \
|
||||
-a ./.res/src.tar.gz \
|
||||
-a ./.res/go.tar.gz \
|
||||
-a ./.res/doc.tar.gz \
|
||||
-a ./.res/ts.tar.gz \
|
||||
|
||||
# - run: |
|
||||
# if [ -n ${{ gitea.ref_name }} ]; then
|
||||
# mkdir .res
|
||||
# for out in go ts doc; do
|
||||
# echo releasing ${out} ...
|
||||
# tar czf .res/${out}.tar.gz ./stub/${out}/
|
||||
# curl -Ss --user nfel:${{ secrets.PROD_REG_TOKEN }}\
|
||||
# --upload-file .res/${out}.tar.gz \
|
||||
# ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz
|
||||
# done
|
||||
# echo releasing proto ...
|
||||
# tar czf ./.res/src.tar.gz $(find -type f -name "*.proto")
|
||||
# curl -Ss --user nfel:${{ secrets.PROD_REG_TOKEN }}\
|
||||
# --upload-file ./.res/src.tar.gz \
|
||||
# ${{ gitea.server_url }}/api/packages/Kahroba/generic/proto/${{ gitea.ref_name }}/src.tar.gz
|
||||
# fi
|
||||
# - run: |
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package alert.v1;
|
||||
|
||||
import "base/v1/msg.proto";
|
||||
|
||||
message AlertFilter {
|
||||
base.v1.Filter base_filter = 1;
|
||||
Importance importance = 2;
|
||||
LogSource source = 3;
|
||||
}
|
||||
|
||||
//Importance of given event
|
||||
enum Importance {
|
||||
LOW = 0; // Low Severity ( unimportant and can be ignored )
|
||||
MEDIUM = 1; // MEDIUM Severity
|
||||
HIGH = 2; // High Severity
|
||||
CRITICAL = 3; // CRITICAL Severity ( can cause panics and data lost )
|
||||
}
|
||||
|
||||
enum LogSource {
|
||||
UNKNOWN = 0;
|
||||
USER = 1;
|
||||
SYSTEM = 2;
|
||||
WALLET = 3;
|
||||
}
|
||||
|
||||
message Meta {
|
||||
uint32 created_at_ts = 1;
|
||||
uint32 updated_at_ts = 2;
|
||||
uint32 blamer_id = 3; // User ID of person who made the change
|
||||
}
|
||||
|
||||
message LogEvent {
|
||||
optional uint64 id = 1; // Record Id of Log stored in db
|
||||
string content = 2;
|
||||
string effective_user = 3;
|
||||
optional LogSource source = 5;
|
||||
Importance importance = 6;
|
||||
Meta meta = 7;
|
||||
}
|
||||
|
||||
message LogEventList {
|
||||
repeated LogEvent events = 1;
|
||||
}
|
||||
/*
|
||||
Internal Msg
|
||||
*/
|
||||
|
||||
message SMSChangeLog {
|
||||
uint32 when_ts = 1;
|
||||
string what = 2;
|
||||
}
|
||||
|
||||
message SMS {
|
||||
string recipient = 1; //recipient
|
||||
string text = 2;
|
||||
optional string sender = 3;
|
||||
Meta meta = 4;
|
||||
repeated SMSChangeLog change_log = 5;
|
||||
}
|
||||
|
||||
message SMSList {
|
||||
repeated SMS sms = 1;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package alert.v1;
|
||||
|
||||
import "alert/v1/msg.proto";
|
||||
import "base/v1/msg.proto";
|
||||
|
||||
service AlertSrv {
|
||||
rpc Emit(LogEvent) returns (base.v1.StatusRes) {}
|
||||
rpc Update(LogEvent) returns (base.v1.StatusRes) {}
|
||||
rpc Get(AlertFilter) returns (base.v1.StatusRes) {}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package auth.v1;
|
||||
|
||||
import "auth/v1/msg.proto";
|
||||
|
||||
service InternalAuthorizationService {
|
||||
rpc LookUpName(LookUpNameReq) returns (LookUpNameRes) {}
|
||||
}
|
||||
+43
-4
@@ -75,8 +75,8 @@ message CheckIAMReq {
|
||||
message InternalIAM {
|
||||
User user = 1;
|
||||
IdentityBasic identity = 2;
|
||||
repeated Company company = 3;
|
||||
}
|
||||
|
||||
message IdReqWithIAM {
|
||||
int64 id = 1;
|
||||
InternalIAM iam = 2;
|
||||
@@ -110,6 +110,7 @@ message Company {
|
||||
bool can_provide_bnpl = 5;
|
||||
}
|
||||
|
||||
// Identity is bound to current user's real identity
|
||||
message Identity {
|
||||
string national_id = 1;
|
||||
string national_serial_id = 2;
|
||||
@@ -131,14 +132,17 @@ message Identity {
|
||||
string updated_at = 18;
|
||||
string created_at = 19;
|
||||
string email = 20;
|
||||
string mobile = 21;
|
||||
string mobile = 21;
|
||||
optional Company company = 22;
|
||||
optional string employee_info = 23;
|
||||
string pub_key = 24;
|
||||
optional float balance = 25;
|
||||
}
|
||||
|
||||
message IdentityBasic {
|
||||
string first_name = 1;
|
||||
string last_name = 2;
|
||||
optional Company company = 3;
|
||||
}
|
||||
|
||||
message UserIdentityBasic {
|
||||
@@ -194,6 +198,8 @@ message TFAReq {
|
||||
optional string mobile = 2;
|
||||
optional string email = 3;
|
||||
optional string reason = 4; // issued jwt reason -> can be login, redeem, withdrawal
|
||||
optional string transaction_id = 5;
|
||||
optional TfaStateEnum state = 6;
|
||||
}
|
||||
|
||||
// Two Factor Authentication Exchange Response
|
||||
@@ -205,6 +211,39 @@ message TFAExRes {
|
||||
message CheckTFAReq {
|
||||
InternalIAM iam = 1;
|
||||
string code = 2;
|
||||
optional string algorithm = 3;
|
||||
optional string reason = 4; // Can be later used as a lookup
|
||||
TFAReq req = 3;
|
||||
// optional string algorithm = 3;
|
||||
// optional string reason = 4; // Can be later used as a lookup
|
||||
// optional string transaction_id = 5;
|
||||
// optional TfaStateEnum state = 6;
|
||||
}
|
||||
|
||||
message TFA {
|
||||
TfaStateEnum state = 1;
|
||||
int64 code = 2;
|
||||
string transaction_id = 3;
|
||||
}
|
||||
|
||||
enum TfaStateEnum {
|
||||
TFA_STATE_ENUM_UNSPECIFIED = 0;
|
||||
LOGIN = 1;
|
||||
INTERNAL_TRANSFER = 2;
|
||||
EXTERNAL_TRANSFER = 3;
|
||||
REDEEM_TOKEN = 4;
|
||||
}
|
||||
|
||||
message Recipient {
|
||||
string key = 1;
|
||||
optional string first_name = 2;
|
||||
optional string last_name = 3;
|
||||
optional int64 user_id = 4;
|
||||
optional string public_key = 5;
|
||||
}
|
||||
|
||||
message LookUpNameReq {
|
||||
Recipient recipient = 1;
|
||||
}
|
||||
|
||||
message LookUpNameRes {
|
||||
Recipient recipient = 1;
|
||||
}
|
||||
|
||||
+1
-2
@@ -14,8 +14,7 @@ service AuthorizationService {
|
||||
|
||||
rpc UserLoginSendOTP(UserSendOtpReq) returns (UserSendOtpRes) {}
|
||||
rpc UserLoginWithOTP(UserLoginReq) returns (UserAccessTokenRes) {}
|
||||
rpc UserGetAccessTokenByRefreshToken(UserRefreshTokenReq)
|
||||
returns (UserAccessTokenRes) {}
|
||||
rpc UserGetAccessTokenByRefreshToken(UserRefreshTokenReq) returns (UserAccessTokenRes) {}
|
||||
|
||||
rpc UserGetUserPermission(InternalIAM) returns (PermissionList) {}
|
||||
|
||||
|
||||
@@ -13,3 +13,12 @@ message IdRes {
|
||||
message IdReq {
|
||||
int64 id = 1;
|
||||
}
|
||||
message Pagination {
|
||||
uint32 page = 1; // in query param it will be p
|
||||
uint32 page_size = 2; // in query param it will be pz
|
||||
}
|
||||
message Filter {
|
||||
string query = 1; // q
|
||||
string sort = 2; // s
|
||||
optional Pagination page = 3;
|
||||
}
|
||||
|
||||
+5
-2
@@ -28,8 +28,11 @@ plugins:
|
||||
out: stub/doc/md
|
||||
# # NOTE: Gateway
|
||||
# # - remote: buf.build/grpc-ecosystem/gateway:v2.16.2
|
||||
# - local: protoc-gen-grpc-gateway
|
||||
# out: stub/go
|
||||
- local: protoc-gen-grpc-gateway
|
||||
out: stub/go
|
||||
opt:
|
||||
- standalone=true
|
||||
- generate_unbound_methods=true
|
||||
# # NOTE: SWAGGER json files
|
||||
# # - remote: buf.build/grpc-ecosystem/openapiv2:v2.16.2
|
||||
# - local: protoc-gen-openapiv2
|
||||
|
||||
+56
-9
@@ -75,6 +75,7 @@ message Asset {
|
||||
repeated string images = 30;
|
||||
int32 status = 31;
|
||||
AssetMeta meta = 32;
|
||||
string type = 33;
|
||||
}
|
||||
|
||||
message GetAssetReq {
|
||||
@@ -145,6 +146,7 @@ message UserBNPLResp {
|
||||
optional string updated_at = 12;
|
||||
optional string created_at = 13;
|
||||
Asset selected_asset = 14;
|
||||
optional string rejection_reason = 15;
|
||||
}
|
||||
|
||||
message UserBNPLReq {
|
||||
@@ -223,8 +225,11 @@ enum TransactionType {
|
||||
UNKNOWN = 0;
|
||||
BUY = 1;
|
||||
SELL = 2;
|
||||
TRANSFER = 3;
|
||||
REDEEM = 4;
|
||||
INTERNAL_TRANSFER = 3;
|
||||
EXTERNAL_TRANSFER = 4;
|
||||
REDEEM = 5;
|
||||
TRUST_LINE = 6;
|
||||
WAGE = 7;
|
||||
}
|
||||
enum TransactionStatus {
|
||||
UNDETERMINED = 0;
|
||||
@@ -289,17 +294,22 @@ message UserBuyAssetReq {
|
||||
Transfer
|
||||
*/
|
||||
|
||||
message UserTransferAssetReq {
|
||||
message TransferAssetReq {
|
||||
auth.v1.InternalIAM iam = 1;
|
||||
int64 asset_id = 2;
|
||||
auth.v1.Recipient recipient = 2;
|
||||
double amount = 3;
|
||||
string to_wallet_address = 4;
|
||||
string to_wallet_memo = 5;
|
||||
optional int64 network_id = 4;
|
||||
int64 asset_id = 5;
|
||||
optional bool approval = 6;
|
||||
optional auth.v1.TFA tfa = 7;
|
||||
}
|
||||
|
||||
message UserTransferRes {
|
||||
int64 transaction_id = 1;
|
||||
string tracking_code = 2;
|
||||
message TransferAssetRes {
|
||||
auth.v1.Recipient recipient = 1;
|
||||
double amount = 2;
|
||||
// TODO: Change to Asset
|
||||
string transaction_id = 3;
|
||||
string transaction_hash = 4;
|
||||
}
|
||||
|
||||
// represent the information regarding the sale of the token
|
||||
@@ -377,3 +387,40 @@ message RedeemTokenRes {
|
||||
message RedeemTokenResList {
|
||||
repeated RedeemTokenRes list = 1;
|
||||
}
|
||||
|
||||
message GetPublicKeyByNationalIDReq {
|
||||
auth.v1.InternalIAM iam = 1;
|
||||
string national_id = 2;
|
||||
}
|
||||
|
||||
message GetPublicKeyByNationalIDRes {
|
||||
string pub_key = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
Network Details
|
||||
*/
|
||||
enum NetworkType {
|
||||
UNKNOWN_NETWORK_TYPE = 0;
|
||||
ETH = 1;
|
||||
XLM = 2;
|
||||
BTC = 3;
|
||||
}
|
||||
|
||||
message Network {
|
||||
int64 id = 1;
|
||||
string name = 2;
|
||||
string code = 3;
|
||||
string explorer = 4;
|
||||
int64 gas_asset_id = 5;
|
||||
string description = 6;
|
||||
NetworkType type = 7;
|
||||
bool is_active = 8;
|
||||
string image = 9;
|
||||
string updated_at = 10;
|
||||
string created_at = 11;
|
||||
}
|
||||
|
||||
message NetworkList {
|
||||
repeated Network list = 1;
|
||||
}
|
||||
|
||||
+8
-1
@@ -13,13 +13,14 @@ service WalletService {
|
||||
rpc AdminGetFederation(GetFederationReq) returns (Federation);
|
||||
rpc UserGetFederation(auth.v1.InternalIAM) returns (Federation);
|
||||
|
||||
rpc GetNetworkList(base.v1.Empty) returns (NetworkList);
|
||||
|
||||
rpc UserGetAssetList(base.v1.Empty) returns (AssetList);
|
||||
rpc AdminGetAssetList(base.v1.Empty) returns (AssetList);
|
||||
rpc GetAsset(GetAssetReq) returns (Asset);
|
||||
|
||||
rpc UserInitWallet(UserInitWalletReq) returns (base.v1.StatusRes);
|
||||
rpc UserGetWalletList(auth.v1.InternalIAM) returns (WalletList);
|
||||
rpc UserTransferAsset(UserTransferAssetReq) returns (UserTransferRes);
|
||||
|
||||
rpc UserGetTransactionList(UserGetTransactionListReq) returns (TransactionList);
|
||||
|
||||
@@ -39,4 +40,10 @@ service WalletService {
|
||||
rpc CalculateRedeemToken(RedeemTokenReq) returns (CalculateRedeemTokenRes);
|
||||
rpc RedeemToken(RedeemTokenReq) returns (base.v1.StatusRes);
|
||||
rpc RedeemTokenList(auth.v1.ReqWithIAMAndParams) returns (RedeemTokenResList);
|
||||
|
||||
rpc GetPublicKeyByNationalID(GetPublicKeyByNationalIDReq) returns (GetPublicKeyByNationalIDRes);
|
||||
|
||||
// Assets routing
|
||||
rpc InternalTransferAsset(TransferAssetReq) returns (TransferAssetRes);
|
||||
rpc ExternalTransferAsset(TransferAssetReq) returns (TransferAssetRes);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user