1.6 参与JUNO开发
目录结构
── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── README.md
├── api
│ └── apiv1 # 对外api提供
├── assets # 前端资源
├── cmd
│ ├── juno-admin
│ └── juno-proxy
├── config # config demo
│ ├── casbin_test
│ ├── install.toml
│ ├── juno-grafana.ini
│ ├── juno-prometheus.yml
│ ├── model.conf
│ ├── multiple-region-admin.toml
│ ├── multiple-region-proxy.toml
│ ├── resource.yaml
│ └── single-region-admin.toml
├── configs # 本地开发配置,不要推送到仓库
│ ├── config-multiple-region-admin.toml
│ └── config-single-region-admin.toml
├── data # mock 数据
│ ├── docker
│ ├── grafana
│ └── mockdata
├── docs
│ ├── LICENSEHEADER.txt
│ ├── logo.png
│ └── wiki-cn
├── go.mod
├── go.sum
├── internal # 内部逻辑
│ ├── app
│ └── pkg
├── logs # 本地开发日志
│ ├── biz.json
│ └── system.json
├── pkg # 外部可引用代码
│ ├── auth
│ ├── cfg
│ ├── constx
│ ├── errorconst
│ ├── model
│ ├── pb
│ └── util
└── script
└── build
internal
├── app
│ ├── adminengine # router
│ │ ├── engine_admin.go
│ │ ├── engine_install.go
│ │ ├── form_validator.go
│ │ ├── router_admin.go
│ │ └── router_api.go
│ ├── core
│ │ └── core.go
│ ├── middleware
│ │ ├── casbin.go
│ │ ├── gateway.go
│ │ ├── login.go
│ │ ├── openauth.go
│ │ └── openauth_test.go
│ └── proxyengine
│ └── engine.go
└── pkg
├── datasource
│ └── datasource.go
├── install
│ ├── base.go
│ ├── mock_app.go
│ └── mock_setting.go
├── invoker # 数据源初始化
│ └── invoker.go
├── packages
│ ├── contrib
│ └── roundtrip
└── service
├── agent
├── analysis
├── app_topology.go
├── appevent
├── applog
├── assist
├── auth
├── casbin
├── clientproxy
├── confgo
├── confgov2
├── configresource
├── gateway
├── grafana
├── grpcgovern
├── init.go
├── notify
├── openauth
├── parse
├── permission
├── pprof
├── proxy
├── report
├── resource
├── service_suite_test.go
├── supervisor
├── system
├── tool.go
└── user
开发方式
数据库初始化与调整
参考Makefile文件,以下是相关的数据库操作,初始化、数据清理、数据mock
相关代码逻辑在 internal/pkg/install
中
database.install:
@go run cmd/juno-admin/main.go --config=config/install.toml --install=true
database.clear:
@go run cmd/juno-admin/main.go --config=config/install.toml --clear=true
database.mock:
@go run cmd/juno-admin/main.go --config=config/install.toml --mock=true
database.debug: database.clear database.install database.mock
后端启动
有两种模式:
- single-region-admin
只调整juno功能、不涉及跨机房通信开发使用make run.single-region-admin
即可
run.single-region-admin:
@go run cmd/juno-admin/main.go --config=config/single-region-admin.toml
- multiple-region-admin+multiple-region-proxy
需要跨机房数据调用调试使用make run.multiple-region-admin
和make run.multiple-region-proxy
run.multiple-region-admin:
@go run cmd/juno-admin/main.go --config=config/multiple-region-admin.toml
run.multiple-region-proxy:
@go run cmd/juno-proxy/main.go --config=config/multiple-region-proxy.toml
开发配置不要推送到远端仓库
本地开发配置放在configs
文件夹中,使用.gitignore
进行文件忽略,切记不要推送、不要推送、不要推送
推送前代码做好审核工作
前端启动
进入assest
文件夹执行npm run start
修改 config/proxy.ts 里面的后端代理端口配置,即可打通本地调试
生产环境进行npm run build
进行dist构建推送即可
├── README.md
└── config
├── config.ts
├── defaultSettings.ts
└── proxy.ts
├── dist
├── favicon.png
├── jest.config.js
├── jsconfig.json
├── mock
├── node_modules
├── package.json
├── public
├── src
├── tests
└── tsconfig.json
访问 localhost:8000
进入本地调试