Files
oc-catalog/main.go
T
2026-05-28 08:39:28 +02:00

41 lines
1.2 KiB
Go
Executable File

package main
import (
"fmt"
"oc-catalog/infrastructure"
_ "oc-catalog/routers"
oclib "cloud.o-forge.io/core/oc-lib"
"cloud.o-forge.io/core/oc-lib/config"
"cloud.o-forge.io/core/oc-lib/tools"
beego "github.com/beego/beego/v2/server/web"
)
const appname = "oc-catalog"
func main() {
// Init the oc-lib — les routes WebSocket décentralisées sont déclarées ici
// car beego.Handler n'alimente pas GlobalControllerRouter.
o := oclib.GetConfLoader(appname)
oclib.InitAPI(appname, map[string][]string{
"/oc/decentralized/:type/:datatype/search/:search": {"GET"},
})
// Table privée opaque_key → real_path, partagée en lecture avec oc-datacenter
// via le volume Docker /data. oc-catalog est le seul writer.
sourceKeyPath := o.GetStringDefault("SOURCE_KEY_STORE_PATH", "/data/source-keys.json")
if err := infrastructure.InitSourceKeyStore(sourceKeyPath); err != nil {
fmt.Println("FATAL: cannot initialize source key store:", err)
return
}
go oclib.InitNATSDecentralizedEmitter(tools.COMPUTE_RESOURCE, tools.DATA_RESOURCE,
tools.PROCESSING_RESOURCE, tools.STORAGE_RESOURCE, tools.WORKFLOW_RESOURCE)
go infrastructure.ListenNATS()
go infrastructure.StartDockerScraper()
if config.GetConfig().IsApi {
beego.Run()
}
}