This repository was archived by the owner on Jul 7, 2025. It is now read-only.
generated from xmidt-org/.go-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommandLine.go
More file actions
46 lines (37 loc) · 1.84 KB
/
commandLine.go
File metadata and controls
46 lines (37 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// SPDX-FileCopyrightText: 2025 Comcast Cable Communications Management, LLC
// SPDX-License-Identifier: Apache-2.0
package main
import (
"time"
"github.com/alecthomas/kong"
)
type CLI struct {
Debug bool `help:"turns on debugging"`
Network string `default:"tcp" enum:"tcp,tcp4,tcp6" help:"the network for the server to bind on"`
Address string `default:":8080" help:"the bind address for the server"`
Type string `short:"t" default:"JWT" help:"the type of JWT tokens to issue. The recommended value is JWT, in all caps, which is the default."`
Issuer string `short:"i" default:"utu" help:"the issuer for issued JWTs (iss)"`
Subject string `short:"s" default:"utu" help:"the subject for issued JWTs (sub)"`
Expires time.Duration `short:"e" default:"15m" help:"how long until issued JWTs expire. used to compute the exp claim."`
Audience []string `short:"a" optional:"" help:"the audience (aud) for issued JWTs"`
Claims map[string]string `short:"c" optional:"" help:"the set of arbitrary claims for issued JWTs"`
KeyRotate time.Duration `default:"24h" help:"how often the current signing key is rotated."`
KeyType string `enum:"EC,RSA" default:"EC" help:"the key type (kty) used to sign and verify JWTs"`
KeySize int `default:"2048" help:"the bit length for keys. used only for RSA keys."`
KeyCurve string `default:"P-256" enum:"P-256,P-384,P-521" help:"the elliptic curve for key generation. used only for EC keys."`
}
func NewCLI(args []string, options ...kong.Option) (cli CLI, kctx *kong.Context, err error) {
options = append(
[]kong.Option{
kong.Description("labweek JWT issuer with lua integration"),
kong.UsageOnError(),
},
options...,
)
var k *kong.Kong
k, err = kong.New(&cli, options...)
if err == nil {
kctx, err = k.Parse(args)
}
return
}