Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
bdae505
chore(deps): add stackit-sdk-go/services/registry v0.1.0
Oct 21, 2026
96c3cd6
feat(registry): add client configuration and helpers
Oct 21, 2026
508e174
feat(registry): add artifactory commands and tests
Oct 21, 2026
0797b55
docs: generate documentation for registry commands
Oct 21, 2026
d8b305a
fix(security): bump go to 1.26.10 to mitigate CVE-2026-111943
Oct 21, 2026
0d38336
style: sort registry import in root command
Oct 21, 2026
fba0f07
feat(registry): support proxy configuration on artifactory create
Oct 21, 2026
3b7b490
docs: update artifactory create documentation with proxy flags
Oct 21, 2026
9276684
chroe(cli): revert bump
Oct 22, 2026
403aa48
Merge branch 'main' into feat/STACKITCRE-382-registry
Oct 22, 2026
ba6e7d5
docs(review): add code review report for STACKITCRE-382
Oct 23, 2026
e7187a7
fix(registry): handle secret flag safely and require credentials pair…
Oct 23, 2026
8f33dc1
fix(registry): add pagination support to artifactory list command
Oct 23, 2026
a7a41c4
feat(config): support registry-custom-endpoint in config set and unset
Oct 23, 2026
ae86056
fix(registry): add nil check and unit tests for GetArtifactoryName
Oct 23, 2026
2733359
style(registry): format creation timestamp with time.DateTime in desc…
Oct 23, 2026
918dcbf
test(registry): add unit test coverage for artifactory update flags
Oct 23, 2026
39c4e58
Merge pull request #1 from acgalbany/STACKITCRE-382-registry-fixes
acgalbany Oct 23, 2026
e1e9254
chore: remove code review report for STACKITCRE-382
Oct 23, 2026
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.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ stackit [flags]
* [stackit public-ip](./stackit_public-ip.md) - Provides functionality for public IPs
* [stackit quota](./stackit_quota.md) - Manage server quotas
* [stackit rabbitmq](./stackit_rabbitmq.md) - Provides functionality for RabbitMQ
* [stackit registry](./stackit_registry.md) - Provides functionality for Container Registry
* [stackit secrets-manager](./stackit_secrets-manager.md) - Provides functionality for Secrets Manager
* [stackit security-group](./stackit_security-group.md) - Manage security groups
* [stackit server](./stackit_server.md) - Provides functionality for servers
Expand Down
1 change: 1 addition & 0 deletions docs/stackit_config_set.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ stackit config set [flags]
--postgresflex-custom-endpoint string PostgreSQL Flex API base URL, used in calls to this API
--rabbitmq-custom-endpoint string RabbitMQ API base URL, used in calls to this API
--redis-custom-endpoint string Redis API base URL, used in calls to this API
--registry-custom-endpoint string Registry API base URL, used in calls to this API
--resource-manager-custom-endpoint string Resource Manager API base URL, used in calls to this API
--runcommand-custom-endpoint string Run Command API base URL, used in calls to this API
--secrets-manager-custom-endpoint string Secrets Manager 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 @@ -56,6 +56,7 @@ stackit config unset [flags]
--rabbitmq-custom-endpoint RabbitMQ API base URL. If unset, uses the default base URL
--redis-custom-endpoint Redis API base URL. If unset, uses the default base URL
--region Region
--registry-custom-endpoint Registry API base URL. If unset, uses the default base URL
--resource-manager-custom-endpoint Resource Manager API base URL. If unset, uses the default base URL
--runcommand-custom-endpoint Server Command base URL. If unset, uses the default base URL
--secrets-manager-custom-endpoint Secrets Manager API base URL. If unset, uses the default base URL
Expand Down
34 changes: 34 additions & 0 deletions docs/stackit_registry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
## stackit registry

Provides functionality for Container Registry

### Synopsis

Provides functionality for Container Registry.

```
stackit registry [flags]
```

### Options

```
-h, --help Help for "stackit registry"
```

### 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](./stackit.md) - Manage STACKIT resources using the command line
* [stackit registry artifactory](./stackit_registry_artifactory.md) - Provides functionality for Container Registry artifactories

38 changes: 38 additions & 0 deletions docs/stackit_registry_artifactory.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## stackit registry artifactory

Provides functionality for Container Registry artifactories

### Synopsis

Provides functionality for Container Registry artifactories.

```
stackit registry artifactory [flags]
```

### Options

```
-h, --help Help for "stackit registry artifactory"
```

### 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 registry](./stackit_registry.md) - Provides functionality for Container Registry
* [stackit registry artifactory create](./stackit_registry_artifactory_create.md) - Creates a Container Registry artifactory
* [stackit registry artifactory delete](./stackit_registry_artifactory_delete.md) - Deletes a Container Registry artifactory
* [stackit registry artifactory describe](./stackit_registry_artifactory_describe.md) - Shows details of a Container Registry artifactory
* [stackit registry artifactory list](./stackit_registry_artifactory_list.md) - Lists all Container Registry artifactories
* [stackit registry artifactory update](./stackit_registry_artifactory_update.md) - Updates a Container Registry artifactory

52 changes: 52 additions & 0 deletions docs/stackit_registry_artifactory_create.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
## stackit registry artifactory create

Creates a Container Registry artifactory

### Synopsis

Creates a Container Registry artifactory.

```
stackit registry artifactory create [flags]
```

### Examples

```
Create an artifactory with name "my-registry"
$ stackit registry artifactory create --name my-registry

Create a proxy-cache artifactory for Docker Hub
$ stackit registry artifactory create --name docker-proxy --proxy-url https://registry-1.docker.io --proxy-registry-type docker-hub

Create a proxy-cache artifactory with credentials
$ stackit registry artifactory create --name my-proxy --proxy-url https://custom-registry.com --proxy-registry-type harbor --proxy-access-key my-user --proxy-access-secret my-secret
```

### Options

```
-h, --help Help for "stackit registry artifactory create"
-n, --name string Artifactory name
--proxy-access-key string Access key for upstream proxy registry authentication
--proxy-access-secret string Proxy-Access-Secret. Can be a string (deprecated) or a file path, if prefixed with '@' (example: @./secret.txt). Will be read from stdin when empty.
--proxy-description string Description of the proxy registry
--proxy-registry-type string Registry type of the upstream proxy (e.g., docker-hub, harbor)
--proxy-url string Upstream registry URL to proxy
```

### 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 registry artifactory](./stackit_registry_artifactory.md) - Provides functionality for Container Registry artifactories

40 changes: 40 additions & 0 deletions docs/stackit_registry_artifactory_delete.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
## stackit registry artifactory delete

Deletes a Container Registry artifactory

### Synopsis

Deletes a Container Registry artifactory.

```
stackit registry artifactory delete ARTIFACTORY_ID [flags]
```

### Examples

```
Delete an artifactory with ID "xxx"
$ stackit registry artifactory delete xxx
```

### Options

```
-h, --help Help for "stackit registry artifactory 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 registry artifactory](./stackit_registry_artifactory.md) - Provides functionality for Container Registry artifactories

43 changes: 43 additions & 0 deletions docs/stackit_registry_artifactory_describe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
## stackit registry artifactory describe

Shows details of a Container Registry artifactory

### Synopsis

Shows details of a Container Registry artifactory.

```
stackit registry artifactory describe ARTIFACTORY_ID [flags]
```

### Examples

```
Get details of an artifactory with ID "xxx"
$ stackit registry artifactory describe xxx

Get details of an artifactory with ID "xxx" in JSON format
$ stackit registry artifactory describe xxx --output-format json
```

### Options

```
-h, --help Help for "stackit registry artifactory describe"
```

### 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 registry artifactory](./stackit_registry_artifactory.md) - Provides functionality for Container Registry artifactories

47 changes: 47 additions & 0 deletions docs/stackit_registry_artifactory_list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
## stackit registry artifactory list

Lists all Container Registry artifactories

### Synopsis

Lists all Container Registry artifactories.

```
stackit registry artifactory list [flags]
```

### Examples

```
List all artifactories
$ stackit registry artifactory list

List all artifactories in JSON format
$ stackit registry artifactory list --output-format json

List up to 10 artifactories
$ stackit registry artifactory list --limit 10
```

### Options

```
-h, --help Help for "stackit registry artifactory list"
--limit int Maximum number of entries to list
```

### 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 registry artifactory](./stackit_registry_artifactory.md) - Provides functionality for Container Registry artifactories

44 changes: 44 additions & 0 deletions docs/stackit_registry_artifactory_update.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## stackit registry artifactory update

Updates a Container Registry artifactory

### Synopsis

Updates a Container Registry artifactory.

```
stackit registry artifactory update ARTIFACTORY_ID [flags]
```

### Examples

```
Update the proxy configuration for an artifactory with ID "xxx"
$ stackit registry artifactory update xxx --proxy-url https://registry-1.docker.io
```

### Options

```
-h, --help Help for "stackit registry artifactory update"
--proxy-access-key string Access key for upstream proxy registry authentication
--proxy-access-secret string Proxy-Access-Secret. Can be a string (deprecated) or a file path, if prefixed with '@' (example: @./secret.txt). Will be read from stdin when empty.
--proxy-description string Description of the proxy registry
--proxy-url string Upstream registry URL to proxy
```

### 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 registry artifactory](./stackit_registry_artifactory.md) - Provides functionality for Container Registry artifactories

1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ require (
github.com/stackitcloud/stackit-sdk-go/services/mongodbflex v1.13.0
github.com/stackitcloud/stackit-sdk-go/services/opensearch v1.5.0
github.com/stackitcloud/stackit-sdk-go/services/postgresflex v1.15.0
github.com/stackitcloud/stackit-sdk-go/services/registry v0.1.0
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.27.0
github.com/stackitcloud/stackit-sdk-go/services/runcommand v1.11.0
github.com/stackitcloud/stackit-sdk-go/services/secretsmanager v0.19.1
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -654,6 +654,8 @@ github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v1.5.0 h1:SAro5TWVJDDyi
github.com/stackitcloud/stackit-sdk-go/services/rabbitmq v1.5.0/go.mod h1:mjYkyr/A/+9rZnX5IOLEoAMFqHsRCIToZWpsYzYBwWo=
github.com/stackitcloud/stackit-sdk-go/services/redis v1.6.0 h1:5UEPilI+RCuXEM8jm4ibREoZAsSAGI1+KnJ0oapye7Q=
github.com/stackitcloud/stackit-sdk-go/services/redis v1.6.0/go.mod h1:/wE98YN+s1s1OcaEPt8Z2xO0Y46Gur3nXlg1AiiMNeY=
github.com/stackitcloud/stackit-sdk-go/services/registry v0.1.0 h1:Z52pSNI1o1vi6h25ZQRl26lPMXFRq8RQVEjGlNA+Pwk=
github.com/stackitcloud/stackit-sdk-go/services/registry v0.1.0/go.mod h1:9ew0RfPiwsDbd2OApdaAfTJgZyJbtKKP63NNZz3RWBQ=
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.27.0 h1:lZl9X/wl0tF+HufZiurUkYJmk4u6/Vz8/FkdgT3wA10=
github.com/stackitcloud/stackit-sdk-go/services/resourcemanager v0.27.0/go.mod h1:IsId3wbkp5oaO0JEaHZpZnbVW6KFHlAptwB+1iG3v3w=
github.com/stackitcloud/stackit-sdk-go/services/runcommand v1.11.0 h1:EVeeGzvyiCN4VbInHIWXZtL8hPsVzZIdnfXjgyZzUf0=
Expand Down
1 change: 1 addition & 0 deletions internal/cmd/config/profile/import/template/profile.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"project_name": "",
"rabbitmq_custom_endpoint": "",
"redis_custom_endpoint": "",
"registry_custom_endpoint": "",
"resource_manager_custom_endpoint": "",
"runcommand_custom_endpoint": "",
"secrets_manager_custom_endpoint": "",
Expand Down
4 changes: 4 additions & 0 deletions internal/cmd/config/set/set.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ const (
sfsCustomEndpointFlag = "sfs-custom-endpoint"
cdnCustomEndpointFlag = "cdn-custom-endpoint"
vpnCustomEndpointFlag = "vpn-custom-endpoint"
registryCustomEndpointFlag = "registry-custom-endpoint"
)

type inputModel struct {
Expand Down Expand Up @@ -180,6 +181,7 @@ func configureFlags(cmd *cobra.Command) {
cmd.Flags().String(sfsCustomEndpointFlag, "", "SFS API base URL, used in calls to this API")
cmd.Flags().String(cdnCustomEndpointFlag, "", "CDN API base URL, used in calls to this API")
cmd.Flags().String(vpnCustomEndpointFlag, "", "VPN API base URL, used in calls to this API")
cmd.Flags().String(registryCustomEndpointFlag, "", "Registry API base URL, used in calls to this API")

err := viper.BindPFlag(config.SessionTimeLimitKey, cmd.Flags().Lookup(sessionTimeLimitFlag))
cobra.CheckErr(err)
Expand Down Expand Up @@ -256,6 +258,8 @@ func configureFlags(cmd *cobra.Command) {
cobra.CheckErr(err)
err = viper.BindPFlag(config.VPNCustomEndpointKey, cmd.Flags().Lookup(vpnCustomEndpointFlag))
cobra.CheckErr(err)
err = viper.BindPFlag(config.RegistryCustomEndpointKey, cmd.Flags().Lookup(registryCustomEndpointFlag))
cobra.CheckErr(err)
}

func parseInput(p *print.Printer, cmd *cobra.Command, _ []string) (*inputModel, error) {
Expand Down
Loading