change api prefix

This commit is contained in:
liugq 2021-11-23 17:36:35 +08:00
commit e6c8216d7b
7 changed files with 45 additions and 76 deletions

8
Jenkinsfile vendored
View File

@ -36,10 +36,10 @@ pipeline {
sh label: 'package-linux-arm64', script: 'cd /home/jenkins/go/src/infini.sh/search-center/bin && tar cfz ${WORKSPACE}/console-$VERSION-$BUILD_NUMBER-linux-arm64.tar.gz console-linux-arm64 console.yml '
sh label: 'package-mac-amd64', script: 'cd /home/jenkins/go/src/infini.sh/search-center/bin && zip -r ${WORKSPACE}/console-$VERSION-$BUILD_NUMBER-mac-amd64.zip console-mac-amd64 console.yml '
sh label: 'package-mac-arm64', script: 'cd /home/jenkins/go/src/infini.sh/search-center/bin && zip -r ${WORKSPACE}/console-$VERSION-$BUILD_NUMBER-mac-arm64.zip console-mac-arm64 console.yml '
sh label: 'package-win-amd64', script: 'cd /home/jenkins/go/src/infini.sh/search-center/bin && zip -r ${WORKSPACE}/console-$VERSION-$BUILD_NUMBER-windows-amd64.zip console-windows-amd64 console.yml '
sh label: 'package-win-386', script: 'cd /home/jenkins/go/src/infini.sh/search-center/bin && zip -r ${WORKSPACE}/console-$VERSION-$BUILD_NUMBER-windows-386.zip console-windows-386 console.yml '
archiveArtifacts artifacts: 'console-$VERSION-$BUILD_NUMBER-*.tar.gz', fingerprint: true, followSymlinks: true, onlyIfSuccessful: false
// sh label: 'package-mac-arm64', script: 'cd /home/jenkins/go/src/infini.sh/search-center/bin && zip -r ${WORKSPACE}/console-$VERSION-$BUILD_NUMBER-mac-arm64.zip console-mac-arm64 console.yml '
sh label: 'package-win-amd64', script: 'cd /home/jenkins/go/src/infini.sh/search-center/bin && zip -r ${WORKSPACE}/console-$VERSION-$BUILD_NUMBER-windows-amd64.zip console-windows-amd64.exe console.yml '
sh label: 'package-win-386', script: 'cd /home/jenkins/go/src/infini.sh/search-center/bin && zip -r ${WORKSPACE}/console-$VERSION-$BUILD_NUMBER-windows-386.zip console-windows-386.exe console.yml '
archiveArtifacts artifacts: 'console-$VERSION-$BUILD_NUMBER-*.*', fingerprint: true, followSymlinks: true, onlyIfSuccessful: false
}
}
}

View File

@ -125,7 +125,7 @@ build-arm: config
build-darwin: config
GOOS=darwin GOARCH=amd64 $(GOBUILD) -o $(OUTPUT_DIR)/$(APP_NAME)-mac-amd64
# GOOS=darwin GOARCH=386 $(GOBUILD) -o $(OUTPUT_DIR)/$(APP_NAME)-mac-386
GOOS=darwin GOARCH=arm64 $(GOBUILD) -o $(OUTPUT_DIR)/$(APP_NAME)-mac-arm64
# GOOS=darwin GOARCH=arm64 $(GOBUILD) -o $(OUTPUT_DIR)/$(APP_NAME)-mac-arm64
@$(MAKE) restore-generated-file
build-bsd: config

View File

@ -1,33 +1,25 @@
#配置应用存储数据的 Elasticsearch 集群信息
#存储极限数据平台相关数据的 Elasticsearch 集群信息,版本 v7.0+
elasticsearch:
- name: default
enabled: true
monitored: true
endpoint: http://localhost:9200
endpoint: http://192.168.3.188:9299
basic_auth:
username: elastic
password: ZBdkVQUUdF1Sir4X4BGB
#前端 UI HTTP 配置
web:
enabled: true
embedding_api: true
ui:
enabled: true
path: .public
vfs: true
local: true
#api_endpoint: 10.0.2.5:9000 #配置 api_endpoint 可覆盖默认 api 访问地址
network:
binding: 0.0.0.0:9000
skip_occupied_port: true
#API IP 地址需要在前端可连通(虚拟机环境安装,宿主机访问)
api:
enabled: true
network:
binding: 0.0.0.0:2900
skip_occupied_port: true
cors:
allowed_origins:
- "*"
elastic:
elasticsearch: default
@ -41,11 +33,6 @@ elastic:
template_name: ".infini"
index_prefix: ".infini_"
search-center:
ui_path: .public
ui_vfs: true
ui_local: true
metrics:
enabled: true
major_ip_pattern: "192.*"

19
main.go
View File

@ -9,8 +9,14 @@ import (
"infini.sh/framework/core/module"
"infini.sh/framework/core/orm"
pipe "infini.sh/framework/core/pipeline"
"infini.sh/framework/modules"
elastic2 "infini.sh/framework/modules/elastic"
"infini.sh/framework/modules/filter"
"infini.sh/framework/modules/metrics"
"infini.sh/framework/modules/pipeline"
"infini.sh/framework/modules/queue"
"infini.sh/framework/modules/stats"
"infini.sh/framework/modules/task"
"infini.sh/framework/modules/ui"
"infini.sh/framework/plugins/elastic/json_indexing"
"infini.sh/search-center/config"
"infini.sh/search-center/model"
@ -40,7 +46,16 @@ func main() {
if app.Setup(func() {
//load core modules first
modules.Register()
module.RegisterSystemModule(elastic2.ElasticModule{})
module.RegisterSystemModule(filter.FilterModule{})
module.RegisterSystemModule(&stats.SimpleStatsModule{})
module.RegisterSystemModule(&queue.DiskQueue{})
module.RegisterSystemModule(&queue.RedisModule{})
module.RegisterSystemModule(&queue.QueueModule{})
module.RegisterSystemModule(&ui.UIModule{})
module.RegisterSystemModule(&pipeline.PipeModule{})
module.RegisterSystemModule(&task.TaskModule{})
pipe.RegisterProcessorPlugin("json_indexing", json_indexing.New)
module.RegisterUserPlugin(&metrics.MetricsModule{})

38
ui.go
View File

@ -2,16 +2,11 @@ package main
import (
"fmt"
"infini.sh/framework/core/global"
"net/http"
"src/github.com/segmentio/encoding/json"
"strings"
public "infini.sh/search-center/.public"
"net/http"
log "github.com/cihub/seelog"
"infini.sh/framework/core/api"
"infini.sh/framework/core/ui"
"infini.sh/framework/core/util"
"infini.sh/framework/core/vfs"
uiapi "infini.sh/search-center/api"
@ -27,26 +22,25 @@ func (h UI) InitUI() {
vfs.RegisterFS(public.StaticFS{StaticFolder: h.Config.UI.LocalPath, TrimLeftPath: h.Config.UI.LocalPath, CheckLocalFirst: h.Config.UI.LocalEnabled, SkipVFS: !h.Config.UI.VFSEnabled})
ui.HandleUI("/", vfs.FileServer(vfs.VFS()))
api.HandleUI("/", vfs.FileServer(vfs.VFS()))
uiapi.Init(h.Config)
var apiEndpoint = h.Config.UI.APIEndpoint
apiConfig := &global.Env().SystemConfig.APIConfig
//var apiEndpoint = h.Config.UI.APIEndpoint
//apiConfig := &global.Env().SystemConfig.APIConfig
//
//api.HandleUIFunc("/config", func(w http.ResponseWriter, req *http.Request){
// if(strings.TrimSpace(apiEndpoint) == ""){
// hostParts := strings.Split(req.Host, ":")
// apiEndpoint = fmt.Sprintf("%s//%s:%s", apiConfig.GetSchema(), hostParts[0], apiConfig.NetworkConfig.GetBindingPort())
// }
// buf, _ := json.Marshal(util.MapStr{
// "api_endpoint": apiEndpoint,
// })
// w.Write(buf)
//})
ui.HandleUIFunc("/config", func(w http.ResponseWriter, req *http.Request){
if(strings.TrimSpace(apiEndpoint) == ""){
hostParts := strings.Split(req.Host, ":")
apiEndpoint = fmt.Sprintf("%s//%s:%s", apiConfig.GetSchema(), hostParts[0], apiConfig.NetworkConfig.GetBindingPort())
}
buf, _ := json.Marshal(util.MapStr{
"api_endpoint": apiEndpoint,
})
w.Write(buf)
})
ui.HandleUIFunc("/api/", func(w http.ResponseWriter, req *http.Request) {
api.HandleUIFunc("/api/", func(w http.ResponseWriter, req *http.Request) {
log.Warn("api: ", req.URL, " not implemented")
request, err := h.GetRawBody(req)
if err != nil {

View File

@ -41,7 +41,7 @@ export class InitialStep extends React.Component {
rules: [
{
type: "string",
pattern: /^[\w\.]+\:\d+$/, //(https?:\/\/)?
pattern: /^[\w\.\-_~%]+\:\d+$/, //(https?:\/\/)?
message: "请输入域名或 IP 地址和端口号",
},
{

View File

@ -1,33 +1,6 @@
import $ from "jquery";
function getConfig() {
const options = {
url: "/config",
cache: false,
type: "GET",
dataType: "json", // disable automatic guessing
async: false,
};
let result = {};
try {
const text = $.ajax(options).responseText;
result = JSON.parse(text);
} catch (e) {
console.warn("failed get config data");
}
return result;
}
const { api_endpoint } = getConfig();
let apiEndpoint = api_endpoint;
if (!apiEndpoint) {
apiEndpoint = API_ENDPOINT;
if (!API_ENDPOINT) {
apiEndpoint = `${location.protocol}//${location.hostname}:2900`;
}
}
export const pathPrefix = (apiEndpoint || "") + "/_search-center";
export const pathPrefix = "/_search-center";
export function buildQueryArgs(params) {
let argsStr = "";
for (let key in params) {
@ -41,7 +14,7 @@ export function buildQueryArgs(params) {
}
return argsStr;
}
export const ESPrefix = (apiEndpoint || "") + "/elasticsearch";
export const ESPrefix = "/elasticsearch";
export async function fetchWithTimeout(resource, options = {}) {
const { timeout = 5000 } = options;