+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
package main
import (
"flag"
"log"
"os"
+ "time"
"git.curoverse.com/arvados.git/sdk/go/arvados"
"git.curoverse.com/arvados.git/sdk/go/config"
)
var (
- defaultConfigPath = "/etc/arvados/keep-web/config.json"
+ defaultConfigPath = "/etc/arvados/keep-web/keep-web.yml"
)
// Config specifies server configuration.
AttachmentOnlyHost string
TrustAllContent bool
+ Cache cache
+
// Hack to support old command line flag, which is a bool
// meaning "get actual token from environment".
deprecatedAllowAnonymous bool
func DefaultConfig() *Config {
return &Config{
Listen: ":80",
+ Cache: cache{
+ TTL: arvados.Duration(5 * time.Minute),
+ MaxCollectionEntries: 1000,
+ MaxCollectionBytes: 100000000,
+ MaxPermissionEntries: 1000,
+ MaxUUIDEntries: 1000,
+ },
}
}
var configPath string
deprecated := " (DEPRECATED -- use config file instead)"
flag.StringVar(&configPath, "config", defaultConfigPath,
- "`path` to json configuration file")
+ "`path` to JSON or YAML configuration file")
flag.StringVar(&cfg.Listen, "listen", "",
"address:port or :port to listen on"+deprecated)
flag.BoolVar(&cfg.deprecatedAllowAnonymous, "allow-anonymous", false,
"Only serve attachments at the given `host:port`"+deprecated)
flag.BoolVar(&cfg.TrustAllContent, "trust-all-content", false,
"Serve non-public content from a single origin. Dangerous: read docs before using!"+deprecated)
+ dumpConfig := flag.Bool("dump-config", false,
+ "write current configuration to stdout and exit")
flag.Usage = usage
flag.Parse()
cfg.AnonymousTokens = []string{os.Getenv("ARVADOS_API_TOKEN")}
}
+ if *dumpConfig {
+ log.Fatal(config.DumpAndExit(cfg))
+ }
+
os.Setenv("ARVADOS_API_HOST", cfg.Client.APIHost)
srv := &server{Config: cfg}
if err := srv.Start(); err != nil {
log.Fatal(err)
}
- if _, err := daemon.SdNotify("READY=1"); err != nil {
+ if _, err := daemon.SdNotify(false, "READY=1"); err != nil {
log.Printf("Error notifying init daemon: %v", err)
}
log.Println("Listening at", srv.Addr)