github.com/openfga/openfga@v1.5.4-rc1/cmd/run/flags.go (about)

     1  package run
     2  
     3  import (
     4  	"github.com/spf13/cobra"
     5  	"github.com/spf13/pflag"
     6  
     7  	"github.com/openfga/openfga/cmd/util"
     8  )
     9  
    10  // bindRunFlags binds the cobra cmd flags to the equivalent config value being managed
    11  // by viper. This bridges the config between cobra flags and viper flags.
    12  func bindRunFlagsFunc(flags *pflag.FlagSet) func(*cobra.Command, []string) {
    13  	return func(command *cobra.Command, args []string) {
    14  		util.MustBindPFlag("experimentals", flags.Lookup("experimentals"))
    15  		util.MustBindEnv("experimentals", "OPENFGA_EXPERIMENTALS")
    16  
    17  		util.MustBindPFlag("grpc.addr", flags.Lookup("grpc-addr"))
    18  		util.MustBindEnv("grpc.addr", "OPENFGA_GRPC_ADDR")
    19  
    20  		util.MustBindPFlag("grpc.tls.enabled", flags.Lookup("grpc-tls-enabled"))
    21  		util.MustBindEnv("grpc.tls.enabled", "OPENFGA_GRPC_TLS_ENABLED")
    22  
    23  		util.MustBindPFlag("grpc.tls.cert", flags.Lookup("grpc-tls-cert"))
    24  		util.MustBindEnv("grpc.tls.cert", "OPENFGA_GRPC_TLS_CERT")
    25  
    26  		util.MustBindPFlag("grpc.tls.key", flags.Lookup("grpc-tls-key"))
    27  		util.MustBindEnv("grpc.tls.key", "OPENFGA_GRPC_TLS_KEY")
    28  
    29  		command.MarkFlagsRequiredTogether("grpc-tls-enabled", "grpc-tls-cert", "grpc-tls-key")
    30  
    31  		util.MustBindPFlag("http.enabled", flags.Lookup("http-enabled"))
    32  		util.MustBindEnv("http.enabled", "OPENFGA_HTTP_ENABLED")
    33  
    34  		util.MustBindPFlag("http.addr", flags.Lookup("http-addr"))
    35  		util.MustBindEnv("http.addr", "OPENFGA_HTTP_ADDR")
    36  
    37  		util.MustBindPFlag("http.tls.enabled", flags.Lookup("http-tls-enabled"))
    38  		util.MustBindEnv("http.tls.enabled", "OPENFGA_HTTP_TLS_ENABLED")
    39  
    40  		util.MustBindPFlag("http.tls.cert", flags.Lookup("http-tls-cert"))
    41  		util.MustBindEnv("http.tls.cert", "OPENFGA_HTTP_TLS_CERT")
    42  
    43  		util.MustBindPFlag("http.tls.key", flags.Lookup("http-tls-key"))
    44  		util.MustBindEnv("http.tls.key", "OPENFGA_HTTP_TLS_KEY")
    45  
    46  		command.MarkFlagsRequiredTogether("http-tls-enabled", "http-tls-cert", "http-tls-key")
    47  
    48  		util.MustBindPFlag("http.upstreamTimeout", flags.Lookup("http-upstream-timeout"))
    49  		util.MustBindEnv("http.upstreamTimeout", "OPENFGA_HTTP_UPSTREAM_TIMEOUT", "OPENFGA_HTTP_UPSTREAMTIMEOUT")
    50  
    51  		util.MustBindPFlag("http.corsAllowedOrigins", flags.Lookup("http-cors-allowed-origins"))
    52  		util.MustBindEnv("http.corsAllowedOrigins", "OPENFGA_HTTP_CORS_ALLOWED_ORIGINS", "OPENFGA_HTTP_CORSALLOWEDORIGINS")
    53  
    54  		util.MustBindPFlag("http.corsAllowedHeaders", flags.Lookup("http-cors-allowed-headers"))
    55  		util.MustBindEnv("http.corsAllowedHeaders", "OPENFGA_HTTP_CORS_ALLOWED_HEADERS", "OPENFGA_HTTP_CORSALLOWEDHEADERS")
    56  
    57  		util.MustBindPFlag("authn.method", flags.Lookup("authn-method"))
    58  		util.MustBindEnv("authn.method", "OPENFGA_AUTHN_METHOD")
    59  
    60  		util.MustBindPFlag("authn.preshared.keys", flags.Lookup("authn-preshared-keys"))
    61  		util.MustBindEnv("authn.preshared.keys", "OPENFGA_AUTHN_PRESHARED_KEYS")
    62  
    63  		util.MustBindPFlag("authn.oidc.audience", flags.Lookup("authn-oidc-audience"))
    64  		util.MustBindEnv("authn.oidc.audience", "OPENFGA_AUTHN_OIDC_AUDIENCE")
    65  
    66  		util.MustBindPFlag("authn.oidc.issuer", flags.Lookup("authn-oidc-issuer"))
    67  		util.MustBindEnv("authn.oidc.issuer", "OPENFGA_AUTHN_OIDC_ISSUER")
    68  
    69  		util.MustBindPFlag("authn.oidc.issuerAliases", flags.Lookup("authn-oidc-issuer-aliases"))
    70  		util.MustBindEnv("authn.oidc.issuerAliases", "OPENFGA_AUTHN_OIDC_ISSUER_ALIASES")
    71  
    72  		util.MustBindPFlag("datastore.engine", flags.Lookup("datastore-engine"))
    73  		util.MustBindEnv("datastore.engine", "OPENFGA_DATASTORE_ENGINE")
    74  
    75  		util.MustBindPFlag("datastore.uri", flags.Lookup("datastore-uri"))
    76  		util.MustBindEnv("datastore.uri", "OPENFGA_DATASTORE_URI")
    77  
    78  		util.MustBindPFlag("datastore.username", flags.Lookup("datastore-username"))
    79  		util.MustBindEnv("datastore.username", "OPENFGA_DATASTORE_USERNAME")
    80  
    81  		util.MustBindPFlag("datastore.password", flags.Lookup("datastore-password"))
    82  		util.MustBindEnv("datastore.password", "OPENFGA_DATASTORE_PASSWORD")
    83  
    84  		util.MustBindPFlag("datastore.maxCacheSize", flags.Lookup("datastore-max-cache-size"))
    85  		util.MustBindEnv("datastore.maxCacheSize", "OPENFGA_DATASTORE_MAX_CACHE_SIZE", "OPENFGA_DATASTORE_MAXCACHESIZE")
    86  
    87  		util.MustBindPFlag("datastore.maxOpenConns", flags.Lookup("datastore-max-open-conns"))
    88  		util.MustBindEnv("datastore.maxOpenConns", "OPENFGA_DATASTORE_MAX_OPEN_CONNS", "OPENFGA_DATASTORE_MAXOPENCONNS")
    89  
    90  		util.MustBindPFlag("datastore.maxIdleConns", flags.Lookup("datastore-max-idle-conns"))
    91  		util.MustBindEnv("datastore.maxIdleConns", "OPENFGA_DATASTORE_MAX_IDLE_CONNS", "OPENFGA_DATASTORE_MAXIDLECONNS")
    92  
    93  		util.MustBindPFlag("datastore.connMaxIdleTime", flags.Lookup("datastore-conn-max-idle-time"))
    94  		util.MustBindEnv("datastore.connMaxIdleTime", "OPENFGA_DATASTORE_CONN_MAX_IDLE_TIME", "OPENFGA_DATASTORE_CONNMAXIDLETIME")
    95  
    96  		util.MustBindPFlag("datastore.connMaxLifetime", flags.Lookup("datastore-conn-max-lifetime"))
    97  		util.MustBindEnv("datastore.connMaxLifetime", "OPENFGA_DATASTORE_CONN_MAX_LIFETIME", "OPENFGA_DATASTORE_CONNMAXLIFETIME")
    98  
    99  		util.MustBindPFlag("datastore.metrics.enabled", flags.Lookup("datastore-metrics-enabled"))
   100  		util.MustBindEnv("datastore.metrics.enabled", "OPENFGA_DATASTORE_METRICS_ENABLED")
   101  
   102  		util.MustBindPFlag("playground.enabled", flags.Lookup("playground-enabled"))
   103  		util.MustBindEnv("playground.enabled", "OPENFGA_PLAYGROUND_ENABLED")
   104  
   105  		util.MustBindPFlag("playground.port", flags.Lookup("playground-port"))
   106  		util.MustBindEnv("playground.port", "OPENFGA_PLAYGROUND_PORT")
   107  
   108  		util.MustBindPFlag("profiler.enabled", flags.Lookup("profiler-enabled"))
   109  		util.MustBindEnv("profiler.enabled", "OPENFGA_PROFILER_ENABLED")
   110  
   111  		util.MustBindPFlag("profiler.addr", flags.Lookup("profiler-addr"))
   112  		util.MustBindEnv("profiler.addr", "OPENFGA_PROFILER_ADDRESS")
   113  
   114  		util.MustBindPFlag("log.format", flags.Lookup("log-format"))
   115  		util.MustBindEnv("log.format", "OPENFGA_LOG_FORMAT")
   116  
   117  		util.MustBindPFlag("log.level", flags.Lookup("log-level"))
   118  		util.MustBindEnv("log.level", "OPENFGA_LOG_LEVEL")
   119  
   120  		util.MustBindPFlag("log.timestampFormat", flags.Lookup("log-timestamp-format"))
   121  		util.MustBindEnv("log.timestampFormat", "OPENFGA_LOG_TIMESTAMP_FORMAT")
   122  
   123  		util.MustBindPFlag("trace.enabled", flags.Lookup("trace-enabled"))
   124  		util.MustBindEnv("trace.enabled", "OPENFGA_TRACE_ENABLED")
   125  
   126  		util.MustBindPFlag("trace.otlp.endpoint", flags.Lookup("trace-otlp-endpoint"))
   127  		util.MustBindEnv("trace.otlp.endpoint", "OPENFGA_TRACE_OTLP_ENDPOINT")
   128  
   129  		util.MustBindPFlag("trace.otlp.tls.enabled", flags.Lookup("trace-otlp-tls-enabled"))
   130  		util.MustBindEnv("trace.otlp.tls.enabled", "OPENFGA_TRACE_OTLP_TLS_ENABLED")
   131  
   132  		util.MustBindPFlag("trace.sampleRatio", flags.Lookup("trace-sample-ratio"))
   133  		util.MustBindEnv("trace.sampleRatio", "OPENFGA_TRACE_SAMPLE_RATIO")
   134  
   135  		util.MustBindPFlag("trace.serviceName", flags.Lookup("trace-service-name"))
   136  		util.MustBindEnv("trace.serviceName", "OPENFGA_TRACE_SERVICE_NAME")
   137  
   138  		util.MustBindPFlag("metrics.enabled", flags.Lookup("metrics-enabled"))
   139  		util.MustBindEnv("metrics.enabled", "OPENFGA_METRICS_ENABLED")
   140  
   141  		util.MustBindPFlag("metrics.addr", flags.Lookup("metrics-addr"))
   142  		util.MustBindEnv("metrics.addr", "OPENFGA_METRICS_ADDR")
   143  
   144  		util.MustBindPFlag("metrics.enableRPCHistograms", flags.Lookup("metrics-enable-rpc-histograms"))
   145  		util.MustBindEnv("metrics.enableRPCHistograms", "OPENFGA_METRICS_ENABLE_RPC_HISTOGRAMS")
   146  
   147  		util.MustBindPFlag("maxTuplesPerWrite", flags.Lookup("max-tuples-per-write"))
   148  		util.MustBindEnv("maxTuplesPerWrite", "OPENFGA_MAX_TUPLES_PER_WRITE", "OPENFGA_MAXTUPLESPERWRITE")
   149  
   150  		util.MustBindPFlag("maxTypesPerAuthorizationModel", flags.Lookup("max-types-per-authorization-model"))
   151  		util.MustBindEnv("maxTypesPerAuthorizationModel", "OPENFGA_MAX_TYPES_PER_AUTHORIZATION_MODEL", "OPENFGA_MAXTYPESPERAUTHORIZATIONMODEL")
   152  
   153  		util.MustBindPFlag("maxAuthorizationModelSizeInBytes", flags.Lookup("max-authorization-model-size-in-bytes"))
   154  		util.MustBindEnv("maxAuthorizationModelSizeInBytes", "OPENFGA_MAX_AUTHORIZATION_MODEL_SIZE_IN_BYTES", "OPENFGA_MAXAUTHORIZATIONMODELSIZEINBYTES")
   155  
   156  		util.MustBindPFlag("maxConcurrentReadsForListObjects", flags.Lookup("max-concurrent-reads-for-list-objects"))
   157  		util.MustBindEnv("maxConcurrentReadsForListObjects", "OPENFGA_MAX_CONCURRENT_READS_FOR_LIST_OBJECTS", "OPENFGA_MAXCONCURRENTREADSFORLISTOBJECTS")
   158  
   159  		util.MustBindPFlag("maxConcurrentReadsForListUsers", flags.Lookup("max-concurrent-reads-for-list-users"))
   160  		util.MustBindEnv("maxConcurrentReadsForListUsers", "OPENFGA_MAX_CONCURRENT_READS_FOR_LIST_USERS", "OPENFGA_MAXCONCURRENTREADSFORLISTUSERS")
   161  
   162  		util.MustBindPFlag("maxConcurrentReadsForCheck", flags.Lookup("max-concurrent-reads-for-check"))
   163  		util.MustBindEnv("maxConcurrentReadsForCheck", "OPENFGA_MAX_CONCURRENT_READS_FOR_CHECK", "OPENFGA_MAXCONCURRENTREADSFORCHECK")
   164  
   165  		util.MustBindPFlag("changelogHorizonOffset", flags.Lookup("changelog-horizon-offset"))
   166  		util.MustBindEnv("changelogHorizonOffset", "OPENFGA_CHANGELOG_HORIZON_OFFSET", "OPENFGA_CHANGELOGHORIZONOFFSET")
   167  
   168  		util.MustBindPFlag("resolveNodeLimit", flags.Lookup("resolve-node-limit"))
   169  		util.MustBindEnv("resolveNodeLimit", "OPENFGA_RESOLVE_NODE_LIMIT", "OPENFGA_RESOLVENODELIMIT")
   170  
   171  		util.MustBindPFlag("resolveNodeBreadthLimit", flags.Lookup("resolve-node-breadth-limit"))
   172  		util.MustBindEnv("resolveNodeBreadthLimit", "OPENFGA_RESOLVE_NODE_BREADTH_LIMIT", "OPENFGA_RESOLVENODEBREADTHLIMIT")
   173  
   174  		util.MustBindPFlag("listObjectsDeadline", flags.Lookup("listObjects-deadline"))
   175  		util.MustBindEnv("listObjectsDeadline", "OPENFGA_LIST_OBJECTS_DEADLINE", "OPENFGA_LISTOBJECTSDEADLINE")
   176  
   177  		util.MustBindPFlag("listObjectsMaxResults", flags.Lookup("listObjects-max-results"))
   178  		util.MustBindEnv("listObjectsMaxResults", "OPENFGA_LIST_OBJECTS_MAX_RESULTS", "OPENFGA_LISTOBJECTSMAXRESULTS")
   179  
   180  		util.MustBindPFlag("listUsersDeadline", flags.Lookup("listUsers-deadline"))
   181  		util.MustBindEnv("listUsersDeadline", "OPENFGA_LIST_USERS_DEADLINE", "OPENFGA_LISTUSERSDEADLINE")
   182  
   183  		util.MustBindPFlag("listUsersMaxResults", flags.Lookup("listUsers-max-results"))
   184  		util.MustBindEnv("listUsersMaxResults", "OPENFGA_LIST_USERS_MAX_RESULTS", "OPENFGA_LISTUSERSMAXRESULTS")
   185  
   186  		util.MustBindPFlag("checkQueryCache.enabled", flags.Lookup("check-query-cache-enabled"))
   187  		util.MustBindEnv("checkQueryCache.enabled", "OPENFGA_CHECK_QUERY_CACHE_ENABLED")
   188  
   189  		util.MustBindPFlag("checkQueryCache.limit", flags.Lookup("check-query-cache-limit"))
   190  		util.MustBindEnv("checkQueryCache.limit", "OPENFGA_CHECK_QUERY_CACHE_LIMIT")
   191  
   192  		util.MustBindPFlag("checkQueryCache.ttl", flags.Lookup("check-query-cache-ttl"))
   193  		util.MustBindEnv("checkQueryCache.ttl", "OPENFGA_CHECK_QUERY_CACHE_TTL")
   194  
   195  		util.MustBindPFlag("requestDurationDatastoreQueryCountBuckets", flags.Lookup("request-duration-datastore-query-count-buckets"))
   196  		util.MustBindEnv("requestDurationDatastoreQueryCountBuckets", "OPENFGA_REQUEST_DURATION_DATASTORE_QUERY_COUNT_BUCKETS")
   197  
   198  		util.MustBindPFlag("requestDurationDispatchCountBuckets", flags.Lookup("request-duration-dispatch-count-buckets"))
   199  		util.MustBindEnv("requestDurationDispatchCountBuckets", "OPENFGA_REQUEST_DURATION_DISPATCH_COUNT_BUCKETS")
   200  
   201  		util.MustBindPFlag("dispatchThrottling.enabled", flags.Lookup("dispatch-throttling-enabled"))
   202  		util.MustBindEnv("dispatchThrottling.enabled", "OPENFGA_DISPATCH_THROTTLING_ENABLED")
   203  
   204  		util.MustBindPFlag("dispatchThrottling.frequency", flags.Lookup("dispatch-throttling-frequency"))
   205  		util.MustBindEnv("dispatchThrottling.frequency", "OPENFGA_DISPATCH_THROTTLING_FREQUENCY")
   206  
   207  		util.MustBindPFlag("dispatchThrottling.threshold", flags.Lookup("dispatch-throttling-threshold"))
   208  		util.MustBindEnv("dispatchThrottling.threshold", "OPENFGA_DISPATCH_THROTTLING_THRESHOLD")
   209  
   210  		util.MustBindPFlag("dispatchThrottling.maxThreshold", flags.Lookup("dispatch-throttling-max-threshold"))
   211  		util.MustBindEnv("dispatchThrottling.maxThreshold", "OPENFGA_DISPATCH_THROTTLING_MAX_THRESHOLD")
   212  
   213  		util.MustBindPFlag("requestTimeout", flags.Lookup("request-timeout"))
   214  		util.MustBindEnv("requestTimeout", "OPENFGA_REQUEST_TIMEOUT")
   215  	}
   216  }