Merge branch '2411-check-copyright'
[arvados.git] / services / keep-web / main.go
index 13d8c1b329ab6583fec2a3d4f281d61a55036ca2..c4103f409723fbc3c7bbbc3bbd8edcbf7184be42 100644 (file)
@@ -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"
@@ -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,
+               },
        }
 }
 
@@ -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)