Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
863828c
feat(cdn): add cdn client, config, list command
cgoetz-inovex Nov 19, 2025
f198a95
fix(cdn): generate docs
cgoetz-inovex Nov 19, 2025
d5f4304
fix(cdn) fix linting issues
cgoetz-inovex Nov 19, 2025
8c71293
Update internal/cmd/beta/cdn/distribution/list/list.go
cgoetz-inovex Nov 19, 2025
82f7d49
Update internal/cmd/beta/cdn/distribution/list/list.go
cgoetz-inovex Nov 19, 2025
a87cd60
fix(cdn): rename sortBy params, use EnumSliceToStringSlice
cgoetz-inovex Nov 20, 2025
42d1196
fix(cdn): make `testNextPageID`, `testID` and `testStatus` constant
cgoetz-inovex Nov 20, 2025
0d7729a
fix(cdn): add cdn subcommand to beta, generate docs
cgoetz-inovex Nov 20, 2025
c3095c5
Merge branch 'main' into feat/STACKITCLI-70-add-cdn-distribution-beta…
cgoetz-inovex Nov 24, 2025
7e50687
feat(cdn) add limit flag to distribution list
cgoetz-inovex Dec 1, 2025
9e049a0
feat(cdn): add distribution create cmd
cgoetz-inovex Nov 20, 2025
cbf7a9f
fix(cdn): generate distribution create docs
cgoetz-inovex Nov 20, 2025
7296ee0
squash this
cgoetz-inovex Nov 21, 2025
1235792
feat(cdn) implement cdn distribution create/delete/describe/update
cgoetz-inovex Dec 1, 2025
568659c
squash
cgoetz-inovex Dec 1, 2025
a183846
squash
cgoetz-inovex Dec 1, 2025
4f4e0b1
fix(cdn) regenerate docs
cgoetz-inovex Dec 1, 2025
dbfea3d
fix(cdn) linting issues
cgoetz-inovex Dec 1, 2025
9d512ea
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/sec…
dependabot[bot] Nov 25, 2025
cd065fd
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/ser…
dependabot[bot] Nov 25, 2025
c5d46b4
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/ske…
dependabot[bot] Nov 25, 2025
50ebc7c
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/ser…
dependabot[bot] Nov 25, 2025
13cb16c
chore(deps): bump renovatebot/github-action from 44.0.3 to 44.0.4 (#1…
dependabot[bot] Nov 25, 2025
b950c06
feat(kms) describe key, keyring, wrappingkey (#1107)
cgoetz-inovex Nov 25, 2025
0b693ec
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/rab…
dependabot[bot] Nov 25, 2025
d29f75a
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/alb…
dependabot[bot] Nov 25, 2025
e95f987
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/mon…
dependabot[bot] Nov 26, 2025
be30de5
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/ser…
dependabot[bot] Nov 26, 2025
f6a0b1a
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/ser…
dependabot[bot] Nov 27, 2025
8faa48d
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/dns…
dependabot[bot] Nov 27, 2025
8cda53b
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/iaa…
dependabot[bot] Nov 27, 2025
4ae1761
fix(alb): print valid JSON/YAML output for list cmds (#1045)
rubenhoenle Nov 27, 2025
0edc3c7
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/mar…
dependabot[bot] Nov 28, 2025
f0a12ee
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/red…
dependabot[bot] Nov 28, 2025
1580200
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/run…
dependabot[bot] Nov 28, 2025
3cc971e
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/aut…
dependabot[bot] Nov 28, 2025
784d53a
chore: increase linter timeout (#1131)
marceljk Nov 28, 2025
97cde20
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/int…
dependabot[bot] Nov 28, 2025
9ccaaf8
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/loa…
dependabot[bot] Nov 28, 2025
e93e347
fix: log browser url to stderr instead of stdout (#1136)
marceljk Nov 28, 2025
589ce8f
fix(deps): update module github.com/goccy/go-yaml to v1.19.0 (#1137)
stackit-pipeline Dec 1, 2025
0908904
feat(mongodbflex): add readAnyDatabase and stackitAdmin roles for use…
PietvanderMeulen Dec 1, 2025
2b014bc
fix: refresh token flow uses x-www-form encoding (#1135)
JorTurFer Dec 1, 2025
fb6d721
chore(deps): update renovatebot/github-action action to v44.0.5 (#1141)
stackit-pipeline Dec 2, 2025
a228bda
chore(deps): bump github.com/stackitcloud/stackit-sdk-go/services/sql…
dependabot[bot] Dec 2, 2025
883acc3
feat(cdn): add cdn client, config, list command
cgoetz-inovex Nov 19, 2025
5241898
feat(cdn) implement cdn distribution create/delete/describe/update
cgoetz-inovex Dec 1, 2025
180fa38
Merge branch 'main' into feat/STACKITCLI-70-add-cdn-distribution-beta…
cgoetz-inovex Dec 2, 2025
90f05e9
fix(cdn) manual merge fixes
cgoetz-inovex Dec 2, 2025
76d91fb
fix(cdn) review fixes
cgoetz-inovex Dec 2, 2025
3d0f111
fix(cdn) replace utils.Min usage with builtin min
cgoetz-inovex Dec 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/stackit_beta.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ stackit beta [flags]

* [stackit](./stackit.md) - Manage STACKIT resources using the command line
* [stackit beta alb](./stackit_beta_alb.md) - Manages application loadbalancers
* [stackit beta cdn](./stackit_beta_cdn.md) - Manage CDN resources
* [stackit beta intake](./stackit_beta_intake.md) - Provides functionality for intake
* [stackit beta kms](./stackit_beta_kms.md) - Provides functionality for KMS
* [stackit beta sqlserverflex](./stackit_beta_sqlserverflex.md) - Provides functionality for SQLServer Flex
Expand Down
34 changes: 34 additions & 0 deletions docs/stackit_beta_cdn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
## stackit beta cdn

Manage CDN resources

### Synopsis

Manage the lifecycle of CDN resources.

```
stackit beta cdn [flags]
```

### Options

```
-h, --help Help for "stackit beta cdn"
```

### Options inherited from parent commands

```
-y, --assume-yes If set, skips all confirmation prompts
--async If set, runs the command asynchronously
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
-p, --project-id string Project ID
--region string Target region for region-specific requests
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
```

### SEE ALSO

* [stackit beta](./stackit_beta.md) - Contains beta STACKIT CLI commands
* [stackit beta cdn distribution](./stackit_beta_cdn_distribution.md) - Manage CDN distributions

38 changes: 38 additions & 0 deletions docs/stackit_beta_cdn_distribution.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## stackit beta cdn distribution

Manage CDN distributions

### Synopsis

Manage the lifecycle of CDN distributions.

```
stackit beta cdn distribution [flags]
```

### Options

```
-h, --help Help for "stackit beta cdn distribution"
```

### Options inherited from parent commands

```
-y, --assume-yes If set, skips all confirmation prompts
--async If set, runs the command asynchronously
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
-p, --project-id string Project ID
--region string Target region for region-specific requests
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
```

### SEE ALSO

* [stackit beta cdn](./stackit_beta_cdn.md) - Manage CDN resources
* [stackit beta cdn distribution create](./stackit_beta_cdn_distribution_create.md) - Create a CDN distribution
* [stackit beta cdn distribution delete](./stackit_beta_cdn_distribution_delete.md) - Delete a CDN distribution
* [stackit beta cdn distribution describe](./stackit_beta_cdn_distribution_describe.md) - Describe a CDN distribution
* [stackit beta cdn distribution list](./stackit_beta_cdn_distribution_list.md) - List CDN distributions
* [stackit beta cdn distribution update](./stackit_beta_cdn_distribution_update.md) - Update a CDN distribution

63 changes: 63 additions & 0 deletions docs/stackit_beta_cdn_distribution_create.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
## stackit beta cdn distribution create

Create a CDN distribution

### Synopsis

Create a CDN distribution for a given originUrl in multiple regions.

```
stackit beta cdn distribution create [flags]
```

### Examples

```
Create a CDN distribution with an HTTP backend
$ stackit beta cdn create --http --http-origin-url https://example.com \
--regions AF,EU

Create a CDN distribution with an Object Storage backend
$ stackit beta cdn create --bucket --bucket-url https://bucket.example.com \
--bucket-credentials-access-key-id yyyy --bucket-region EU \
--regions AF,EU
```

### Options

```
--blocked-countries strings Comma-separated list of ISO 3166-1 alpha-2 country codes to block (e.g., 'US,DE,FR')
--blocked-ips strings Comma-separated list of IPv4 addresses to block (e.g., '10.0.0.8,127.0.0.1')
--bucket Use Object Storage backend
--bucket-credentials-access-key-id string Access Key ID for Object Storage backend
--bucket-region string Region for Object Storage backend
--bucket-url string Bucket URL for Object Storage backend
--default-cache-duration string ISO8601 duration string for default cache duration (e.g., 'PT1H30M' for 1 hour and 30 minutes)
-h, --help Help for "stackit beta cdn distribution create"
--http Use HTTP backend
--http-geofencing stringArray Geofencing rules for HTTP backend in the format 'https://example.com US,DE'. URL and countries have to be quoted. Repeatable.
--http-origin-request-headers strings Origin request headers for HTTP backend in the format 'HeaderName: HeaderValue', repeatable. WARNING: do not store sensitive values in the headers!
--http-origin-url string Origin URL for HTTP backend
--loki Enable Loki log sink for the CDN distribution
--loki-push-url string Push URL for log sink
--loki-username string Username for log sink
--monthly-limit-bytes int Monthly limit in bytes for the CDN distribution
--optimizer Enable optimizer for the CDN distribution (paid feature).
--regions strings Regions in which content should be cached, multiple of: ["EU" "US" "AF" "SA" "ASIA"] (default [])
```

### Options inherited from parent commands

```
-y, --assume-yes If set, skips all confirmation prompts
--async If set, runs the command asynchronously
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
-p, --project-id string Project ID
--region string Target region for region-specific requests
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
```

### SEE ALSO

* [stackit beta cdn distribution](./stackit_beta_cdn_distribution.md) - Manage CDN distributions

40 changes: 40 additions & 0 deletions docs/stackit_beta_cdn_distribution_delete.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
## stackit beta cdn distribution delete

Delete a CDN distribution

### Synopsis

Delete a CDN distribution by its ID.

```
stackit beta cdn distribution delete [flags]
```

### Examples

```
Delete a CDN distribution with ID "xxx"
$ stackit beta cdn distribution delete xxx
```

### Options

```
-h, --help Help for "stackit beta cdn distribution delete"
```

### Options inherited from parent commands

```
-y, --assume-yes If set, skips all confirmation prompts
--async If set, runs the command asynchronously
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
-p, --project-id string Project ID
--region string Target region for region-specific requests
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
```

### SEE ALSO

* [stackit beta cdn distribution](./stackit_beta_cdn_distribution.md) - Manage CDN distributions

44 changes: 44 additions & 0 deletions docs/stackit_beta_cdn_distribution_describe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## stackit beta cdn distribution describe

Describe a CDN distribution

### Synopsis

Describe a CDN distribution by its ID.

```
stackit beta cdn distribution describe [flags]
```

### Examples

```
Get details of a CDN distribution with ID "xxx"
$ stackit beta cdn distribution describe xxx

Get details of a CDN, including WAF details, for ID "xxx"
$ stackit beta cdn distribution describe xxx --with-waf
```

### Options

```
-h, --help Help for "stackit beta cdn distribution describe"
--with-waf Include WAF details in the distribution description
```

### Options inherited from parent commands

```
-y, --assume-yes If set, skips all confirmation prompts
--async If set, runs the command asynchronously
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
-p, --project-id string Project ID
--region string Target region for region-specific requests
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
```

### SEE ALSO

* [stackit beta cdn distribution](./stackit_beta_cdn_distribution.md) - Manage CDN distributions

45 changes: 45 additions & 0 deletions docs/stackit_beta_cdn_distribution_list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
## stackit beta cdn distribution list

List CDN distributions

### Synopsis

List all CDN distributions in your account.

```
stackit beta cdn distribution list [flags]
```

### Examples

```
List all CDN distributions
$ stackit beta cdn distribution list

List all CDN distributions sorted by id
$ stackit beta cdn distribution list --sort-by=id
```

### Options

```
-- int Limit the output to the first n elements
-h, --help Help for "stackit beta cdn distribution list"
--sort-by string Sort entries by a specific field, one of ["id" "createdAt" "updatedAt" "originUrl" "status" "originUrlRelated"] (default "createdAt")
```

### Options inherited from parent commands

```
-y, --assume-yes If set, skips all confirmation prompts
--async If set, runs the command asynchronously
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
-p, --project-id string Project ID
--region string Target region for region-specific requests
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
```

### SEE ALSO

* [stackit beta cdn distribution](./stackit_beta_cdn_distribution.md) - Manage CDN distributions

57 changes: 57 additions & 0 deletions docs/stackit_beta_cdn_distribution_update.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
## stackit beta cdn distribution update

Update a CDN distribution

### Synopsis

Update a CDN distribution by its ID, allowing replacement of its regions.

```
stackit beta cdn distribution update [flags]
```

### Examples

```
update a CDN distribution with ID "123e4567-e89b-12d3-a456-426614174000" to not use optimizer
$ stackit beta cdn update 123e4567-e89b-12d3-a456-426614174000 --optimizer=false
```

### Options

```
--blocked-countries strings Comma-separated list of ISO 3166-1 alpha-2 country codes to block (e.g., 'US,DE,FR')
--blocked-ips strings Comma-separated list of IPv4 addresses to block (e.g., '10.0.0.8,127.0.0.1')
--bucket Use Object Storage backend
--bucket-credentials-access-key-id string Access Key ID for Object Storage backend
--bucket-region string Region for Object Storage backend
--bucket-url string Bucket URL for Object Storage backend
--default-cache-duration string ISO8601 duration string for default cache duration (e.g., 'PT1H30M' for 1 hour and 30 minutes)
-h, --help Help for "stackit beta cdn distribution update"
--http Use HTTP backend
--http-geofencing stringArray Geofencing rules for HTTP backend in the format 'https://example.com US,DE'. URL and countries have to be quoted. Repeatable.
--http-origin-request-headers strings Origin request headers for HTTP backend in the format 'HeaderName: HeaderValue', repeatable. WARNING: do not store sensitive values in the headers!
--http-origin-url string Origin URL for HTTP backend
--loki Enable Loki log sink for the CDN distribution
--loki-push-url string Push URL for log sink
--loki-username string Username for log sink
--monthly-limit-bytes int Monthly limit in bytes for the CDN distribution
--optimizer Enable optimizer for the CDN distribution (paid feature).
--regions strings Regions in which content should be cached, multiple of: ["EU" "US" "AF" "SA" "ASIA"] (default [])
```

### Options inherited from parent commands

```
-y, --assume-yes If set, skips all confirmation prompts
--async If set, runs the command asynchronously
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
-p, --project-id string Project ID
--region string Target region for region-specific requests
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
```

### SEE ALSO

* [stackit beta cdn distribution](./stackit_beta_cdn_distribution.md) - Manage CDN distributions

1 change: 1 addition & 0 deletions docs/stackit_config_set.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ stackit config set [flags]
```
--allowed-url-domain string Domain name, used for the verification of the URLs that are given in the custom identity provider endpoint and "STACKIT curl" command
--authorization-custom-endpoint string Authorization API base URL, used in calls to this API
--cdn-custom-endpoint string CDN API base URL, used in calls to this API
--dns-custom-endpoint string DNS API base URL, used in calls to this API
-h, --help Help for "stackit config set"
--iaas-custom-endpoint string IaaS API base URL, used in calls to this API
Expand Down
1 change: 1 addition & 0 deletions docs/stackit_config_unset.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ stackit config unset [flags]
--allowed-url-domain Domain name, used for the verification of the URLs that are given in the IDP endpoint and curl commands. If unset, defaults to stackit.cloud
--async Configuration option to run commands asynchronously
--authorization-custom-endpoint Authorization API base URL. If unset, uses the default base URL
--cdn-custom-endpoint Custom CDN endpoint URL. If unset, uses the default base URL
--dns-custom-endpoint DNS API base URL. If unset, uses the default base URL
-h, --help Help for "stackit config unset"
--iaas-custom-endpoint IaaS API base URL. If unset, uses the default base URL
Expand Down
4 changes: 3 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ require (
github.com/stackitcloud/stackit-sdk-go/core v0.20.0
github.com/stackitcloud/stackit-sdk-go/services/alb v0.7.2
github.com/stackitcloud/stackit-sdk-go/services/authorization v0.10.0
github.com/stackitcloud/stackit-sdk-go/services/cdn v1.8.1
github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.2
github.com/stackitcloud/stackit-sdk-go/services/git v0.9.1
github.com/stackitcloud/stackit-sdk-go/services/iaas v1.2.2
Expand All @@ -35,6 +36,7 @@ require (
github.com/stackitcloud/stackit-sdk-go/services/ske v1.5.0
github.com/stackitcloud/stackit-sdk-go/services/sqlserverflex v1.3.3
github.com/zalando/go-keyring v0.2.6
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0
golang.org/x/mod v0.30.0
golang.org/x/oauth2 v0.33.0
golang.org/x/term v0.37.0
Expand Down Expand Up @@ -257,7 +259,7 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/api v0.34.2 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
)
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,8 @@ github.com/stackitcloud/stackit-sdk-go/core v0.20.0 h1:4rrUk6uT1g4nOn5/g1uXukP07
github.com/stackitcloud/stackit-sdk-go/core v0.20.0/go.mod h1:fqto7M82ynGhEnpZU6VkQKYWYoFG5goC076JWXTUPRQ=
github.com/stackitcloud/stackit-sdk-go/services/alb v0.7.2 h1:x7ndqw6yaOw+TmThNeAkI+eN9vK5hWgjIJlFZrYPREo=
github.com/stackitcloud/stackit-sdk-go/services/alb v0.7.2/go.mod h1:wbPNu6e5r/5xhzznCKbC7fEJahrAOb89gmaIm+0w2/s=
github.com/stackitcloud/stackit-sdk-go/services/cdn v1.8.1 h1:CiOlfCsCDwHP0kas7qyhfp5XtL2kVmn9e4wjtc3LO10=
github.com/stackitcloud/stackit-sdk-go/services/cdn v1.8.1/go.mod h1:PyZ6g9JsGZZyeISAF+5E7L1lAlMnmbl2YbPj5Teu8to=
github.com/stackitcloud/stackit-sdk-go/services/authorization v0.10.0 h1:6Buzw5CuPb5ixdMHx4tKjmsQkMn0Hpj0xJ+aNDimKnk=
github.com/stackitcloud/stackit-sdk-go/services/authorization v0.10.0/go.mod h1:40XVgsSOcVCjoIAsbSycDh8Ikp2y88AdAeqwqIIHvZE=
github.com/stackitcloud/stackit-sdk-go/services/dns v0.17.2 h1:x1i5rqhEVuUPq5M0eb68ZD2KL1C8OFD8RG2sWMQGL6o=
Expand Down
2 changes: 2 additions & 0 deletions internal/cmd/beta/beta.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"

"github.com/stackitcloud/stackit-cli/internal/cmd/beta/alb"
"github.com/stackitcloud/stackit-cli/internal/cmd/beta/cdn"
"github.com/stackitcloud/stackit-cli/internal/cmd/beta/intake"
"github.com/stackitcloud/stackit-cli/internal/cmd/beta/kms"
"github.com/stackitcloud/stackit-cli/internal/cmd/beta/sqlserverflex"
Expand Down Expand Up @@ -42,4 +43,5 @@ func addSubcommands(cmd *cobra.Command, params *params.CmdParams) {
cmd.AddCommand(alb.NewCmd(params))
cmd.AddCommand(intake.NewCmd(params))
cmd.AddCommand(kms.NewCmd(params))
cmd.AddCommand(cdn.NewCmd(params))
}
Loading
Loading