Releases: stackitcloud/stackit-sdk-go
Release (2024-02-27)
Highlights
core: v0.10.0- Feature: Add package
runtime, which implements methods to be used when performing API requests. - Feature: Add method
WithCaptureHTTPResponseto packageruntime, which does the same asconfig.WithCaptureHTTPResponse. Method was moved to avoid confusion due to it not being a configuration option, and will be removed in a later release. - Feature: Add configuration option that, for the key flow, enables a goroutine to be spawned that will refresh the access token when it's close to expiring
- Deprecation: Mark method
config.WithCaptureHTTPResponseas deprecated, to avoid confusion due to it not being a configuration option. Useruntime.WithCaptureHTTPResponseinstead. - Deprecation: Mark method
config.WithJWKSEndpointand fieldconfig.Configuration.JWKSCustomUrlas deprecated. Validation using JWKS was removed, for being redundant with token validation done in the APIs. These have no effect. - Deprecation:
- Methods:
config.WithMaxRetriesconfig.WithWaitBetweenCallsconfig.WithRetryTimeoutclients.NewRetryConfig
- Fields:
clients.KeyFlowConfig.ClientRetryclients.TokenFlowConfig.ClientRetryclients.NoAuthFlowConfig.ClientRetryclients.RetryConfig
- Retry options removed to reduce complexity of the clients. If this functionality is needed, you can provide your own custom HTTP client.
- Methods:
- Breaking Change: Change signature of
auth.NoAuth, which no longer takesclients.RetryConfigas argument. - Breaking Change:
- Methods:
clients.KeyFlow.Cloneclients.TokenFlow.Cloneclients.NoAuthFlow.Cloneclients.Do
- Fields:
clients.DefaultRetryMaxRetriesclients.DefaultRetryWaitBetweenCallsclients.DefaultRetryTimeout
- Constants:
clients.ClientTimeoutErrclients.ClientContextDeadlineErrclients.ClientConnectionRefusedErrclients.ClientEOFErrorclients.Environment
- Removed to reduce complexity of the clients, they were no longer being used.
- Methods:
- Feature: Add package
What's Changed
- Replace membership example with authentication by @hcsa73 in #320
- Update module golang.org/x/oauth2 to v0.17.0 by @stackit-pipeline in #321
- Add LICENSE to root by @vicentepinto98 in #322
- Update GitHub actions by @joaopalet in #323
- Move
WithCaptureHTTPResponseby @hcsa73 in #324 - Deprecate
config.WithCaptureHTTPResponseby @hcsa73 in #325 - Update module github.com/stackitcloud/stackit-sdk-go/core to v0.8.0 by @stackit-pipeline in #326
- Remove token validation using JWKS in KeyFlow by @hcsa73 in #328
- Remove Key Flow unused methods by @hcsa73 in #327
- Undo removal of
JWKSCustomUrlfield by @hcsa73 in #330 - Remove golang.org/x/oauth2 core dependency by @joaopalet in #329
- Release 2024-02-19 by @hcsa73 in #331
- Update module github.com/stackitcloud/stackit-sdk-go/core to v0.9.0 by @stackit-pipeline in #332
- Add token refresh in background by @hcsa73 in #333
- Fix key flow bugs by @hcsa73 in #334
- Add example for background token refresh by @hcsa73 in #336
- Automatic tag helper script by @vicentepinto98 in #335
- Bump github.com/cloudflare/circl from 1.3.3 to 1.3.7 in /scripts by @dependabot in #338
- Update module golang.org/x/mod to v0.15.0 by @stackit-pipeline in #340
- Read password from terminal in automatic tag script by @vicentepinto98 in #339
- Remove backoff dependency and deprecate RetryOptions by @vicentepinto98 in #337
- Ask for confirmation in automatic script tags by @vicentepinto98 in #341
New Contributors
- @dependabot made their first contribution in #338
Full Changelog: release-2024-02-07...release-2024-02-27
Release (2024-02-07)
Warning
The membership module has been replaced with the authorization module, which connects to the same API.
This module will receive no further updates. Use github.com/stackitcloud/stackit-sdk-go/services/authorization instead.
Highlights
Release (2024-02-06)
Warning
The STACKIT PostgreSQL service will reach its end of support on June 30th 2024. All calls done to the API after that will stop working.
Use github.com/stackitcloud/stackit-sdk-go/services/postgresflex instead. For more details, check https://docs.stackit.cloud/stackit/en/bring-your-data-to-stackit-postgresql-flex-138347648.html.
Highlights
postgresql: v0.12.0- Add deprecation note
ske: v0.10.0- Feature: New endpoints for credentials rotation.
StartCredentialsRotationCompleteCredentialsRotationCreateKubeconfig- These endpoints replace
GetCredentialsandTriggerRotateCredentials, which are deprecated and will not work for clusters with Kubernetes v1.27+, or if the new endpoints for kubeconfig or credentials rotation have already been used. For more information, see How to rotate SKE credentials.
- Feature: New endpoints for credentials rotation.
Release (2024-02-05)
Highlights
logme: v0.10.0- Feature:
Instancehas a new fieldOfferingName
- Feature:
mariadb: v0.10.0- Feature:
Instancehas a new fieldOfferingName
- Feature:
opensearch: v0.10.0- Feature:
Instancehas a new fieldOfferingName
- Feature:
postgresflex: v0.9.0- Feature: New API method
UpdateUserto update user - Feature: New API method
PartialUpdateUserto patch update user - Feature: New API method
ResetUserto reset a user's password
- Feature: New API method
postgresql: v0.11.0- Feature:
Instancehas a new fieldOfferingName
- Feature:
rabbitmq: v0.10.0- Feature:
Instancehas a new fieldOfferingName
- Feature:
redis: v0.10.0- Feature:
Instancehas a new fieldOfferingName
- Feature:
Release (2024-01-24)
Highlights
loadbalancer: v0.9.0- Feature: Server Name Indicator (SNI) support
- Feature: Layer 4 Session Persistance
Release (2024-01-09)
Highlights
core: v0.7.5- Improvement: When using the key flow, the SDK will extract the private key from the service account key and use it, if no private key is provided in the configuration, through environment variable or in the credentials file. This makes it simpler to use the key flow: if you create a service account key including the private key, you don't need to provide the private key separately anymore
dns: v0.8.0- Feature:
Zonehas a new filedLabels, which is an array of labels (key-value pairs) associated to a zone - Feature:
ListZonescan be filtered by label keys or values - Feature:
CloneZonePayloadhas a flagAdjustRecordsto adjust the record set content of the cloned zone (replaces the dns name of the original zone with the new dns name of the cloned zone)
- Feature:
logme: v0.9.0- Feature:
PartialUpdateInstancecan be used to update the instance's name - Feature:
InstanceParametershas a new settingMaxDiskThreshold - Feature:
ListMetricsResponsehas new fields regarding ephemeral disk
- Feature:
mariadb: v0.9.0- Feature:
PartialUpdateInstancecan be used to update the instance's name - Feature:
InstanceParametershas a new settingMaxDiskThreshold - Feature:
ListMetricsResponsehas new fields regarding ephemeral disk
- Feature:
mongodbflex: v0.10.0- Breaking Change: Added method
ListMetrics(which accepts the desired metric:cpu,database,disk-iops,disk-use, orexec-time) as an argument and replacesListCPUMetrics,ListDatabaseStorageMetrics,ListDiskIOPSMetrics,ListDiskUsageMetrics, andListExecutionTimesMetrics, respectivelly - Breaking Change: Removes the previously deprecated method
GetStorage, replaced byListStorages
- Breaking Change: Added method
opensearch: v0.9.0- Feature:
PartialUpdateInstancecan be used to update the instance's name - Feature:
InstanceParametershas a new settingMaxDiskThreshold - Feature:
ListMetricsResponsehas new fields regarding ephemeral disk
- Feature:
postgresql: v0.10.0- Feature:
PartialUpdateInstancecan be used to update the instance's name - Feature:
InstanceParametershas a new settingMaxDiskThreshold - Feature:
ListMetricsResponsehas new fields regarding ephemeral disk
- Feature:
rabbitmq: v0.9.0- Feature:
PartialUpdateInstancecan be used to update the instance's name - Feature:
InstanceParametershas a new settingMaxDiskThreshold - Feature:
ListMetricsResponsehas new fields regarding ephemeral disk
- Feature:
redis: v0.9.0- Feature:
PartialUpdateInstancecan be used to update the instance's name - Feature:
InstanceParametershas a new settingMaxDiskThreshold - Feature:
ListMetricsResponsehas new fields regarding ephemeral disk
- Feature:
ske: v0.9.0- Improvement: Add details on credentials for old clusters
- Feature:
ClusterStatusnow has a fieldCredentialsRotationwith credentials' details
Release (2023-12-22)
Highlights
mongodbflex: v0.9.0- Added struct
ApiListStoragesRequest, which will replaceApiGetStorageRequestApiGetStorageRequesthas been marked as deprecated, and will be removed in the next minor update
- Added method
ListStorages, which will replaceGetStorageGetStoragehas been marked as deprecated, and will be removed in the next minor update
- Added
CloneInstanceWaitHandler, to wait forCloneInstanceasync operation to be completed
- Added struct
Release (2023-12-20)
API methods, structs and waiters were renamed to have the same look and feel across all services and according to user feedback.
Most significant changes:
- Methods to get multiple instances of the same resource are now named
List[Resource Name] - Methods to fully update a resource are now named
Update[Resource Name] - Methods to update some fields of a resource are now named
PartialUpdate[Resource Name] - Methods relative to API service enablement are now named
GetServiceStatus,EnableServiceandDisableService - Several common terms, such as
ACLandCredentials, have been standardized - Structs only used in method responses are named
[Method Name]Response - Waiters for a given method are now named
[Method name]WaitHandler
Highlights
Below is the list of changes for the API methods. For each service, you can check out the full changelog.
argus: v0.8.0CreateCredentialrenamed toCreateCredentialsCreateInstanceAlertConfigReceiverrenamed toCreateAlertConfigReceiverDeleteCredentialrenamed toDeleteCredentialsDeleteCredentialRemoteWriteConfigrenamed toDeleteCredentialsRemoteWriteConfigDeleteInstanceAlertConfigReceiverrenamed toDeleteAlertConfigReceiverDeleteInstanceAlertConfigRouteReceiverrenamed toDeleteAlertConfigRouteGetCredentialrenamed toGetCredentialsGetCredentialRemoteWriteConfigrenamed toGetCredentialsRemoteWriteConfigGetCredentialsrenamed toListCredentialsGetInstanceAclrenamed toListACLGetInstanceAlertConfigReceiverrenamed toGetAlertConfigReceiverGetInstanceAlertConfigReceiversrenamed toListAlertConfigReceiversGetInstanceAlertConfigRoutesrenamed toListAlertConfigRouteGetInstanceAlertConfigsrenamed toGetAlertConfigsGetInstanceGrafanaConfigsrenamed toGetGrafanaConfigsGetInstancesrenamed toListInstancesGetPlansrenamed toListPlansGetScrapeConfigsrenamed toListScrapeConfigsUpdateCredentialRemoteWriteConfigrenamed toUpdateCredentialsRemoteWriteConfigUpdateInstanceAclrenamed toUpdateACLUpdateInstanceAlertConfigReceiverrenamed toUpdateAlertConfigReceiverUpdateInstanceAlertConfigRouteReceiverrenamed toUpdateAlertConfigRouteUpdateInstanceAlertConfigsrenamed toUpdateAlertConfigsUpdateInstanceGrafanaConfigsrenamed toUpdateGrafanaConfigs
dns: v0.7.0GetRecordSetsrenamed toListRecordSetsGetZonesrenamed toListZonesUpdateRecordrenamed toPartialUpdateRecordUpdateRecordSetrenamed toPartialUpdateRecordSetUpdateZonerenamed toPartialUpdateZone
loadbalancer: v0.8.0DisableLoadBalancingrenamed toDisableServiceEnableLoadBalancingrenamed toEnableServiceGetProjectStatusrenamed toGetServiceStatus
logme: v0.8.0GetCredentialsIdsrenamed toListCredentialsGetInstancesrenamed toListInstancesGetOfferingsrenamed toListOfferingsUpdateInstancerenamed toPartialUpdateInstance
mariadb: v0.8.0GetCredentialsIdsrenamed toListCredentialsGetInstancesrenamed toListInstancesGetOfferingsrenamed toListOfferingsUpdateInstancerenamed toPartialUpdateInstance
membership: v0.3.0DeleteMembersrenamed toRemoveMembersGetMembersrenamed toListMembersGetMembershipsrenamed toListUserMembershipsGetPermissionsrenamed toListPermissionsGetRolesrenamed toListRolesUpdateMembersrenamed toAddMembers
mongodbflex: v0.8.0DeleteProjectrenamed toDisableServiceGetBackupsrenamed toListBackupsGetCPUMetricsrenamed toListCPUMetricsGetDatabaseStorageMetricsrenamed toListDatabaseStorageMetricsGetDiskIOPSMetricsrenamed toListDiskIOPSMetricsGetDiskUsageMetricsrenamed toListDiskUsageMetricsGetExecutionTimesMetricsrenamed toListExecutionTimesMetricsGetFlavorsrenamed toListFlavorsGetInstanceRestoresrenamed toListRestoreJobsGetInstancesrenamed toListInstancesGetMemoryMetricsrenamed toListMemoryMetricsGetUsersrenamed toListUsers
objectstorage: v0.8.0CreateProjectrenamed toEnableServiceDeleteProjectrenamed toDisableServiceGetAccessKeysrenamed toListAccessKeysGetBucketsrenamed toListBucketsGetCredentialsGroupsrenamed toListCredentialsGroupsGetProjectrenamed toGetServiceStatus
opensearch: v0.8.0GetCredentialsIdsrenamed toListCredentialsGetInstancesrenamed toListInstancesGetOfferingsrenamed toListOfferingsUpdateInstancerenamed toPartialUpdateInstance
postgresflex: v0.8.0GetBackupsrenamed toListBackupsGetFlavorsrenamed toListFlavorsGetInstancesrenamed toListInstancesGetStoragesrenamed toListStoragesGetUsersrenamed toListUsersGetVersionsrenamed toListVersionsUpdateInstancerenamed toPartialUpdateInstance
postgresql: v0.9.0GetCredentialsIdsrenamed toListCredentialsGetInstancesrenamed toListInstancesGetOfferingsrenamed toListOfferingsUpdateInstancerenamed toPartialUpdateInstance
rabbitmq: v0.8.0GetCredentialsIdsrenamed toListCredentialsGetInstancesrenamed toListInstancesGetOfferingsrenamed toListOfferingsUpdateInstancerenamed toPartialUpdateInstance
redis: v0.8.0GetCredentialsIdsrenamed toListCredentialsGetInstancesrenamed toListInstancesGetOfferingsrenamed toListOfferingsUpdateInstancerenamed toPartialUpdateInstance
resourcemanager: v0.7.0GetProjectsrenamed toListProjectsUpdateProjectrenamed toPartialUpdateProject
secretsmanager: v0.5.0CreateAclrenamed toCreateACLDeleteAclrenamed toDeleteACLGetAclrenamed toGetACLGetAclsrenamed toListACLsGetInstancesrenamed toListInstancesUpdateAclrenamed toUpdateACL
serviceaccount: v0.3.0GetAccessTokensrenamed toListAccessTokensGetServiceAccountJWKSrenamed toGetJWKSGetServiceAccountKeysrenamed toListServiceAccountKeysGetServiceAccountsrenamed toListServiceAccountsGetUsersrenamed toListUsersUpdateServiceAccountKeyrenamed toPartialUpdateServiceAccountKey
ske: v0.8.0CreateProjectrenamed toEnableServiceDeleteProjectrenamed toDisableServiceGetClustersrenamed toListClustersGetOptionsrenamed toListProviderOptionsGetProjectrenamed toGetServiceStatus
Release (2023-12-18)
This is the first GitHub release of the STACKIT Go SDK.
Highlights
List of modules:
core: v0.7.3auth: setup authentication, specifically using the service account key or token flows. Check our authentication exampleclients: baseline http client implementations to support different use cases, such as the different authentication flowsconfig: configuration for the SDK clients, such as custom endpoints, region and custom http client configuration. Check our configuration exampleoapierror: open api error definition and handlingutils: utilities, such as thePtrmethod to return a pointer to a variable of any type, which can be useful for creating payloadswait: functionality to wait until a specific async operation has finished. Check our waiter example
argus: v0.7.0- Manage your STACKIT Argus resources:
Instance,Credentials,ScrapeConfig,Acl,Alertconfig,GrafanaConfig - Waiters for async operations:
CreateInstanceWaitHandler,UpdateInstanceWaitHandler,DeleteInstanceWaitHandler,CreateScrapeConfigWaitHandler,DeleteScrapeConfigWaitHandler - Usage example
- Manage your STACKIT Argus resources:
dns: v0.6.0- Manage your STACKIT DNS resources:
Zones,RecordSet - Waiters for async operations:
CreateZoneWaitHandler,UpdateZoneWaitHandler,DeleteZoneWaitHandler,CreateRecordSetWaitHandler,UpdateRecordSetWaitHandler,DeleteRecordSetWaitHandler - Usage example
- Manage your STACKIT DNS resources:
loadbalancer: v0.7.0- Manage your STACKIT Load Balancer resources:
LoadBalancer,Credentials - Waiters for async operations:
CreateLoadBalancerWaitHandler,DeleteLoadBalancerWaitHandler,EnableLoadBalancingWaitHandler - Usage example
- Manage your STACKIT Load Balancer resources:
logme: v0.7.0- Manage your STACKIT Logme resources:
Instance,Credentials,Offerings - Waiters for async operations:
CreateInstanceWaitHandler,UpdateInstanceWaitHandler,DeleteInstanceWaitHandler,CreateCredentialsWaitHandler,DeleteCredentialsWaitHandler - Usage example
- Manage your STACKIT Logme resources:
mariadb: v0.7.0- Manage your STACKIT MariaDB resources:
Instance,Credentials,Offerings - Waiters for async operations:
CreateInstanceWaitHandler,UpdateInstanceWaitHandler,DeleteInstanceWaitHandler,CreateCredentialsWaitHandler,DeleteCredentialsWaitHandler - Usage example
- Manage your STACKIT MariaDB resources:
membership: v0.2.0- Manage membership of your STACKIT resources
- Usage example
mongodbflex: v0.7.0- Manage your STACKIT MongoDB Flex resources:
Instance,Flavors,Metrics,User,Storages,Versions - Waiters for async operations:
CreateInstanceWaitHandler,UpdateInstanceWaitHandler,DeleteInstanceWaitHandler - Usage example
- Manage your STACKIT MongoDB Flex resources:
objectstorage: v0.7.0- Manage your STACKIT Object Storage resources:
Bucket,AccessKey,CredentialGroup - Waiters for async operations:
CreateBucketWaitHandler,DeleteBucketWaitHandler - Usage example
- Manage your STACKIT Object Storage resources:
opensearch: v0.7.0- Manage your STACKIT OpenSearch resources:
Instance,Credentials,Offerings - Waiters for async operations:
CreateInstanceWaitHandler,UpdateInstanceWaitHandler,DeleteInstanceWaitHandler,CreateCredentialsWaitHandler,DeleteCredentialsWaitHandler - Usage example
- Manage your STACKIT OpenSearch resources:
postgresflex: v0.7.0- Manage your STACKIT PostgreSQL Flex resources:
Instance,Versions,Flavors,User,Storages - Waiters for async operations:
CreateInstanceWaitHandler,UpdateInstanceWaitHandler,DeleteInstanceWaitHandler,DeleteUserWaitHandler - Usage example
- Manage your STACKIT PostgreSQL Flex resources:
postgresql: v0.8.0- Manage your STACKIT PostgreSQL resources:
Instance,Credentials,Offerings - Waiters for async operations:
CreateInstanceWaitHandler,UpdateInstanceWaitHandler,DeleteInstanceWaitHandler,CreateCredentialsWaitHandler,DeleteCredentialsWaitHandler - Usage example
- Manage your STACKIT PostgreSQL resources:
rabbitmq: v0.7.0- Manage your STACKIT RabbitMQ resources:
Instance,Credentials,Offerings - Waiters for async operations:
CreateInstanceWaitHandler,UpdateInstanceWaitHandler,DeleteInstanceWaitHandler,CreateCredentialsWaitHandler,DeleteCredentialsWaitHandler - Usage example
- Manage your STACKIT RabbitMQ resources:
redis: v0.7.0- Manage your STACKIT Redis resources:
Instance,Credentials,Offerings - Waiters for async operations:
CreateInstanceWaitHandler,UpdateInstanceWaitHandler,DeleteInstanceWaitHandler,CreateCredentialsWaitHandler,DeleteCredentialsWaitHandler - Usage example
- Manage your STACKIT Redis resources:
resourcemanager: v0.6.0- Manage your STACKIT projects
- Waiters for async operations:
CreateProjectWaitHandler,DeleteProjectWaitHandler - Usage example
secretsmanager: v0.4.0- Manage your STACKIT Secrets Manager resources:
Instance,Acl,User - Usage example
- Manage your STACKIT Secrets Manager resources:
serviceaccount: v0.2.0- Manage your STACKIT service accounts
- Usage example
ske: v0.7.0- Manage your STACKIT Kubernetes Engine resources:
Project,Cluster,Credentials,Options - Waiters for async operations:
CreateOrUpdateClusterWaitHandler,DeleteClusterWaitHandler,CreateProjectWaitHandler,DeleteProjectWaitHandler,RotateCredentialsWaitHandler - Usage example
- Manage your STACKIT Kubernetes Engine resources: