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() } }