Files
oc-catalog/main.go
T

41 lines
1.2 KiB
Go
Raw Normal View History

2024-07-26 13:07:25 +02:00
package main
import (
2026-05-28 08:39:28 +02:00
"fmt"
2026-02-06 11:09:46 +01:00
"oc-catalog/infrastructure"
2024-07-26 13:07:25 +02:00
_ "oc-catalog/routers"
oclib "cloud.o-forge.io/core/oc-lib"
2026-04-29 07:47:44 +02:00
"cloud.o-forge.io/core/oc-lib/config"
2026-02-18 14:38:50 +01:00
"cloud.o-forge.io/core/oc-lib/tools"
2026-02-06 11:09:46 +01:00
beego "github.com/beego/beego/v2/server/web"
2024-07-26 13:07:25 +02:00
)
2024-09-04 15:00:43 +02:00
const appname = "oc-catalog"
2024-07-26 13:07:25 +02:00
func main() {
2026-04-01 15:56:05 +02:00
// Init the oc-lib — les routes WebSocket décentralisées sont déclarées ici
// car beego.Handler n'alimente pas GlobalControllerRouter.
2026-05-28 08:39:28 +02:00
o := oclib.GetConfLoader(appname)
2026-04-01 15:56:05 +02:00
oclib.InitAPI(appname, map[string][]string{
"/oc/decentralized/:type/:datatype/search/:search": {"GET"},
})
2026-05-28 08:39:28 +02:00
// 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
}
2026-02-18 14:38:50 +01:00
go oclib.InitNATSDecentralizedEmitter(tools.COMPUTE_RESOURCE, tools.DATA_RESOURCE,
tools.PROCESSING_RESOURCE, tools.STORAGE_RESOURCE, tools.WORKFLOW_RESOURCE)
2026-02-12 11:33:23 +01:00
go infrastructure.ListenNATS()
2026-04-01 15:56:05 +02:00
go infrastructure.StartDockerScraper()
2026-04-29 07:47:44 +02:00
if config.GetConfig().IsApi {
beego.Run()
}
2024-07-26 13:07:25 +02:00
}