1.6 参与JUNO开发

目录结构

  1. ── CONTRIBUTING.md
  2. ├── LICENSE
  3. ├── Makefile
  4. ├── README.md
  5. ├── api
  6. └── apiv1 # 对外api提供
  7. ├── assets # 前端资源
  8. ├── cmd
  9. ├── juno-admin
  10. └── juno-proxy
  11. ├── config # config demo
  12. ├── casbin_test
  13. ├── install.toml
  14. ├── juno-grafana.ini
  15. ├── juno-prometheus.yml
  16. ├── model.conf
  17. ├── multiple-region-admin.toml
  18. ├── multiple-region-proxy.toml
  19. ├── resource.yaml
  20. └── single-region-admin.toml
  21. ├── configs # 本地开发配置,不要推送到仓库
  22. ├── config-multiple-region-admin.toml
  23. └── config-single-region-admin.toml
  24. ├── data # mock 数据
  25. ├── docker
  26. ├── grafana
  27. └── mockdata
  28. ├── docs
  29. ├── LICENSEHEADER.txt
  30. ├── logo.png
  31. └── wiki-cn
  32. ├── go.mod
  33. ├── go.sum
  34. ├── internal # 内部逻辑
  35. ├── app
  36. └── pkg
  37. ├── logs # 本地开发日志
  38. ├── biz.json
  39. └── system.json
  40. ├── pkg # 外部可引用代码
  41. ├── auth
  42. ├── cfg
  43. ├── constx
  44. ├── errorconst
  45. ├── model
  46. ├── pb
  47. └── util
  48. └── script
  49. └── build

internal

  1. ├── app
  2. ├── adminengine # router
  3. ├── engine_admin.go
  4. ├── engine_install.go
  5. ├── form_validator.go
  6. ├── router_admin.go
  7. └── router_api.go
  8. ├── core
  9. └── core.go
  10. ├── middleware
  11. ├── casbin.go
  12. ├── gateway.go
  13. ├── login.go
  14. ├── openauth.go
  15. └── openauth_test.go
  16. └── proxyengine
  17. └── engine.go
  18. └── pkg
  19. ├── datasource
  20. └── datasource.go
  21. ├── install
  22. ├── base.go
  23. ├── mock_app.go
  24. └── mock_setting.go
  25. ├── invoker # 数据源初始化
  26. └── invoker.go
  27. ├── packages
  28. ├── contrib
  29. └── roundtrip
  30. └── service
  31. ├── agent
  32. ├── analysis
  33. ├── app_topology.go
  34. ├── appevent
  35. ├── applog
  36. ├── assist
  37. ├── auth
  38. ├── casbin
  39. ├── clientproxy
  40. ├── confgo
  41. ├── confgov2
  42. ├── configresource
  43. ├── gateway
  44. ├── grafana
  45. ├── grpcgovern
  46. ├── init.go
  47. ├── notify
  48. ├── openauth
  49. ├── parse
  50. ├── permission
  51. ├── pprof
  52. ├── proxy
  53. ├── report
  54. ├── resource
  55. ├── service_suite_test.go
  56. ├── supervisor
  57. ├── system
  58. ├── tool.go
  59. └── user

开发方式

数据库初始化与调整

参考Makefile文件,以下是相关的数据库操作,初始化、数据清理、数据mock

相关代码逻辑在 internal/pkg/install

  1. database.install:
  2. @go run cmd/juno-admin/main.go --config=config/install.toml --install=true
  3. database.clear:
  4. @go run cmd/juno-admin/main.go --config=config/install.toml --clear=true
  5. database.mock:
  6. @go run cmd/juno-admin/main.go --config=config/install.toml --mock=true
  7. database.debug: database.clear database.install database.mock

后端启动

有两种模式:

  • single-region-admin

只调整juno功能、不涉及跨机房通信开发使用make run.single-region-admin即可

  1. run.single-region-admin:
  2. @go run cmd/juno-admin/main.go --config=config/single-region-admin.toml
  • multiple-region-admin+multiple-region-proxy

需要跨机房数据调用调试使用make run.multiple-region-adminmake run.multiple-region-proxy

  1. run.multiple-region-admin:
  2. @go run cmd/juno-admin/main.go --config=config/multiple-region-admin.toml
  3. run.multiple-region-proxy:
  4. @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构建推送即可

  1. ├── README.md
  2. └── config
  3. ├── config.ts
  4. ├── defaultSettings.ts
  5. └── proxy.ts
  6. ├── dist
  7. ├── favicon.png
  8. ├── jest.config.js
  9. ├── jsconfig.json
  10. ├── mock
  11. ├── node_modules
  12. ├── package.json
  13. ├── public
  14. ├── src
  15. ├── tests
  16. └── tsconfig.json

访问 localhost:8000 进入本地调试