feat: init project
This commit is contained in:
commit
4790a6439d
|
@ -0,0 +1,6 @@
|
|||
.idea/
|
||||
go.sum
|
||||
account/
|
||||
gen_result/
|
||||
etc/app-cloudep-notification-service.yaml
|
||||
./client
|
|
@ -0,0 +1,47 @@
|
|||
###########
|
||||
# BUILDER #
|
||||
###########
|
||||
|
||||
FROM golang:1.20 as builder
|
||||
|
||||
ARG VERSION
|
||||
ARG BUILT
|
||||
ARG GIT_COMMIT
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install git
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY . .
|
||||
|
||||
# Download public key for yt.com
|
||||
RUN mkdir -p -m 0700 ~/.ssh && ssh-keyscan yt.com >> ~/.ssh/known_hosts
|
||||
|
||||
# Forces the usage of git and ssh key fwded by ssh-agent for yt.com git repos
|
||||
RUN git config --global url."git@yt.com:".insteadOf "https://yt.com"
|
||||
|
||||
# private go packages
|
||||
ENV GOPRIVATE=yt.com
|
||||
|
||||
RUN --mount=type=ssh go mod download
|
||||
|
||||
ENV FLAG="-s -w -X main.Version=${VERSION} -X main.Built=${BUILT} -X main.GitCommit=${GIT_COMMIT}"
|
||||
|
||||
RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build \
|
||||
-ldflags "$FLAG" \
|
||||
-o /permission-server ./cmd/permission
|
||||
|
||||
#########
|
||||
# FINAL #
|
||||
#########
|
||||
|
||||
FROM oraclelinux:9-slim AS final
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=builder /permission-server /app/permission-server
|
||||
COPY --from=builder /app/configs/config-example.yaml /app/config.yaml
|
||||
COPY --from=builder /app/configs/rbac_model.conf /app/rbac_model.conf
|
||||
|
||||
CMD ["/app/permission-server"]
|
|
@ -0,0 +1 @@
|
|||
// TODO 未來要放 helm 的地方
|
|
@ -0,0 +1 @@
|
|||
如果有需要可以把 mongo 放這邊
|
|
@ -0,0 +1 @@
|
|||
DROP TABLE IF EXISTS `permission`;
|
|
@ -0,0 +1,15 @@
|
|||
-- 通常會把整個表都放到記憶體當中,不常搜尋,不需要加其他搜尋的 index
|
||||
CREATE TABLE `permission`
|
||||
(
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'PK',
|
||||
`parent` bigint unsigned DEFAULT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`http_method` varchar(255) NOT NULL,
|
||||
`http_path` text NOT NULL,
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '狀態 1: 啟用, 2: 關閉',
|
||||
`type` tinyint NOT NULL DEFAULT '1' COMMENT '狀態 1: 後台, 2: 前台',
|
||||
`create_time` bigint DEFAULT 0 NOT NULL COMMENT '創建時間',
|
||||
`update_time` bigint DEFAULT 0 NOT NULL COMMENT '更新時間',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name_unique_key` (`name`)
|
||||
) ENGINE = InnoDB COMMENT ='權限表';
|
|
@ -0,0 +1 @@
|
|||
DROP DATABASE IF EXISTS `example`;
|
|
@ -0,0 +1 @@
|
|||
CREATE DATABASE IF NOT EXISTS `example`;
|
|
@ -0,0 +1,39 @@
|
|||
# migrate
|
||||
數據庫遷移工具
|
||||
|
||||
[golang-migrate](https://github.com/golang-migrate/migrate)
|
||||
|
||||
## 安裝 make
|
||||
```shell
|
||||
brew install makefile
|
||||
```
|
||||
|
||||
## 安裝 golang-migrate
|
||||
```shell
|
||||
brew install golang-migrate
|
||||
```
|
||||
|
||||
## 執行刪除 mysql schema
|
||||
|
||||
```shell
|
||||
migrate -source file://database/migrations/mysql -database 'mysql://account:password@tcp(127.0.0.1:3306)/esc_c2c' down
|
||||
```
|
||||
|
||||
## 執行安裝 mysql schema
|
||||
|
||||
```shell
|
||||
migrate -source file://database/migrations/mysql -database 'mysql://account:password@tcp(127.0.0.1:3306)/esc_c2c' up
|
||||
```
|
||||
|
||||
## 執行刪除 mongo schema
|
||||
|
||||
```shell
|
||||
migrate -source file://database/migrations/mongodb -database 'mongodb://127.0.0.1:27017/esc_c2c' down
|
||||
```
|
||||
|
||||
## 執行安裝 mongo schema
|
||||
|
||||
```shell
|
||||
migrate -source file://database/migrations/mongodb -database 'mongodb://127.0.0.1:27017/esc_c2c' up
|
||||
```
|
||||
|
|
@ -0,0 +1 @@
|
|||
DELETE FROM `role` WHERE (`role_id` = 'AM000000');
|
|
@ -0,0 +1,3 @@
|
|||
INSERT INTO `role` (`role_id`, `display_name`, `status`, `create_time`, `update_time`)
|
||||
VALUES ('AM000000', 'admin', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
('AM000001', 'visitor', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
|
|
@ -0,0 +1,21 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package "app-cloudep-notification-service";
|
||||
|
||||
option go_package="./app-cloudep-notification-service";
|
||||
|
||||
// OKResp
|
||||
message OKResp {}
|
||||
// NoneReq
|
||||
message NoneReq {}
|
||||
|
||||
|
||||
// DemoService ...
|
||||
service NotificationService {
|
||||
// Ping ...
|
||||
rpc Ping(OKResp)returns(NoneReq);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue