Compare commits
57 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
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
|
|||
|
8d2bdaf352
|
|||
|
9f99f4203d
|
|||
|
96a0171bfd
|
|||
|
1b9e7a05d3
|
|||
|
3c7092fb9b
|
|||
|
fcfe74d80b
|
|||
|
13a75d52de
|
|||
|
8aa875b1d6
|
|||
|
a199324bcc
|
|||
|
3ebd28b9b8
|
@@ -1,4 +1,3 @@
|
||||
---
|
||||
name: Buf CI
|
||||
on:
|
||||
push:
|
||||
@@ -8,30 +7,71 @@ on:
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
packages: write
|
||||
|
||||
jobs:
|
||||
buf:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '>=1.18.0'
|
||||
go-version: ">=1.23.0"
|
||||
- uses: bufbuild/buf-setup-action@v1.47.2
|
||||
- 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: npm init -y && npm install --save-dev @bufbuild/protobuf @bufbuild/protoc-gen-es @bufbuild/buf
|
||||
- run: buf --version
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ gitea.token }}
|
||||
path: ./
|
||||
- run: buf generate
|
||||
- run: |
|
||||
if [ -n ${{ gitea.ref_name }} ]; then
|
||||
mkdir .res
|
||||
for out in go ts docs; do
|
||||
tar czf .res/${out}.tar.gz ./stub/${out}/ .
|
||||
curl --user gitea:${{ gitea.token }} \
|
||||
--upload-file .res/${out}.tar.gz \
|
||||
${{ gitea.api_url }}/packages/kahroba/generic/proto/${{ gitea.ref_name }}/${out}.tar.gz
|
||||
|
||||
- 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"
|
||||
- name: tar files
|
||||
run: |
|
||||
ls -l ./stub
|
||||
for out in go ts doc; do
|
||||
tar czf .res/${out}.tar.gz ./stub/${out}/
|
||||
done
|
||||
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) {}
|
||||
}
|
||||
+39
-3
@@ -131,7 +131,7 @@ 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;
|
||||
}
|
||||
@@ -194,6 +194,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 +207,40 @@ 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;
|
||||
}
|
||||
|
||||
+11
-5
@@ -20,13 +20,19 @@ plugins:
|
||||
# - remote: buf.build/protocolbuffers/go:v1.30.0
|
||||
out: stub/go
|
||||
# NOTE: doc
|
||||
# - local: protoc-gen-doc
|
||||
# opt: html,index.html,source_relative
|
||||
# out: stub/doc
|
||||
- local: protoc-gen-doc
|
||||
opt: html,index.html,source_relative
|
||||
out: stub/doc/html
|
||||
- local: protoc-gen-doc
|
||||
opt: markdown,index.md,source_relative
|
||||
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
|
||||
|
||||
+20
-7
@@ -289,17 +289,22 @@ message UserBuyAssetReq {
|
||||
Transfer
|
||||
*/
|
||||
|
||||
message UserTransferAssetReq {
|
||||
message InternalTransferAssetReq {
|
||||
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 InternalTransferAssetRes {
|
||||
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 +382,11 @@ message RedeemTokenRes {
|
||||
message RedeemTokenResList {
|
||||
repeated RedeemTokenRes list = 1;
|
||||
}
|
||||
|
||||
message GetPublicKeyByNationalIDReq {
|
||||
string national_id = 1;
|
||||
}
|
||||
|
||||
message GetPublicKeyByNationalIDRes {
|
||||
string pub_key = 1;
|
||||
}
|
||||
|
||||
+5
-1
@@ -19,7 +19,6 @@ service WalletService {
|
||||
|
||||
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 +38,9 @@ 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(InternalTransferAssetReq) returns (InternalTransferAssetRes);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user