X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/916d57c9fe68a9e12472e4d174d38d93086c6529..91f976b99d4e7f00d2c1fbfee75812c3b1b780c6:/services/keep-web/main.go diff --git a/services/keep-web/main.go b/services/keep-web/main.go index 2d563bd76f..c4103f4097 100644 --- a/services/keep-web/main.go +++ b/services/keep-web/main.go @@ -1,9 +1,14 @@ +// 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" @@ -11,7 +16,7 @@ import ( ) var ( - defaultConfigPath = "/etc/arvados/keep-web/config.json" + defaultConfigPath = "/etc/arvados/keep-web/keep-web.yml" ) // Config specifies server configuration. @@ -24,6 +29,8 @@ type Config struct { 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 @@ -33,6 +40,13 @@ type Config struct { func DefaultConfig() *Config { return &Config{ Listen: ":80", + Cache: cache{ + TTL: arvados.Duration(5 * time.Minute), + MaxCollectionEntries: 1000, + MaxCollectionBytes: 100000000, + MaxPermissionEntries: 1000, + MaxUUIDEntries: 1000, + }, } } @@ -53,7 +67,7 @@ func main() { 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, @@ -62,6 +76,8 @@ func main() { "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() @@ -78,12 +94,16 @@ func main() { 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)