Skip to content

Releases: Dynatrace/dynatrace-configuration-as-code

2.13.0

05 Apr 13:40
Compare
Choose a tag to compare

🚀 New Features

New supported configuration:

⚙️ Improvements and 🐛 Bug Fixes

  • Monaco now supports specifying "federatedAttributeValues" within account groups. Adding values will transition the group owner to "SAML", while removing all values will transition the group owner to "LOCAL".
  • Monaco now correctly handles read-only group updates - When managing groups owned by “SCIM” or "ALL_USERS", updates to group properties such as name and description are not allowed, which previously caused Monaco to fail during account management deployments. To bypass attempts to update these types of groups, you can set the environment variable MONACO_SKIP_READ_ONLY_ACCOUNT_GROUP_UPDATES to true or 1. Permissions and policies are deployed as normal.

Full Changelog: v2.12.0...v2.13.0

2.12.0

28 Mar 10:37
f16211f
Compare
Choose a tag to compare

🚀 New Features

New scoped Config API types are supported by Monaco:

See the documentation for details on configuring these new types.

🐛 Bug Fixes

🧹 Other

  • Monaco now uses GO 1.22 #1391
  • SBOM format has been changed from XML to JSON #1411
  • Allow structured JSON format for DOT files to ease parsing that information for further processing #1423
  • Added Snyk security scan #1392

New Contributors

Full Changelog: v2.11.0...v2.12.0

2.11.0

26 Feb 13:02
Compare
Choose a tag to compare

What's Changed

🚀 New Features

Monaco now supports the management of users, groups, and policies.
Have a look at our documentation on how to configure and use them.

🔧 Improvements

  • Projects are now optional in the manifest. #1368
  • Print a helpful message if a wrong URL is used in the manifest #1386

🐛 Fixes

  • The property entityId is no longer removed for calculated-metrics-service configs #1364
  • Fixed potential duplication of configurations if some special characters are used. #1373
  • Fixed potential duplication of configurations if multiple environments are used at once. #1380

🧹 Other

  • chore(deps): bump golang from 1.21.6-alpine to 1.22.0-alpine by @dependabot in #1363
  • chore(deps): bump golang.org/x/net from 0.20.0 to 0.21.0 by @dependabot in #1362
  • chore(deps): bump golang.org/x/oauth2 from 0.16.0 to 0.17.0 by @dependabot in #1367
  • chore(deps): bump go.uber.org/zap from 1.26.0 to 1.27.0 by @dependabot in #1378

New Contributors

Full Changelog: v2.10.1...v2.11.0

2.10.1

07 Feb 14:34
Compare
Choose a tag to compare

What's Changed

🔧 Improvements

We've removed the fallback to the deprecated and soon to be removed API endpoint used for querying classic Dynatrace URLs from platform environments. The revamped endpoint now requires a dedicated scope, app-engine:apps:run, to be assigned to the OAuth client. While this constitutes a breaking change from a technical standpoint, it's unlikely to affect most Monaco users. However, if you encounter an error, we suggest updating your OAuth client secret to include this scope. Please consult the public documentation for more information on how to set up an OAuth client for Monaco.

🐛 Fixes

  • Special handling for network zone deployment errors that can occur when the feature for network zones is not (yet) enabled #1340
  • Fixed ID extraction logic to handle possible overflows #1335

Full Changelog: v2.10.0...v2.10.1

2.10.0

16 Jan 08:17
fd93a1b
Compare
Choose a tag to compare

What's Changed

🚀 New Features

Network zones support

Monaco now supports Dynatrace network zones.
You can configure them using api: network-zone in your configs.
For example:

configs:
- id: my-monaco-network-zone
  config:
    name: My zone
    template: zone.json
  type:
    api: network-zone

Generate json/yaml schemas

Monaco now allows to generate json/yaml schemas for the current version that you have.
By invoking monaco generate schemas (see available options using the -h flag), Monaco generates the json/schema definition you can use in your IDE.
You can find more information in our documentation.

🐛 Fixes

  • We're no longer failing when three curly braces are used in the template files

🔧 Improvements

  • Added deprecation notices for deprecated settings schemas.
    The settings schemas builtin:span-attribute, builtin:span-event-attribute, and builtin:resource-attribute are now deprecated.
  • Improved logging during download

Other improvements

  • chore(deps): bump github.com/dynatrace/dynatrace-configuration-as-code-core from 0.4.1-0.20231114144451-a2144bd75dcc to 0.5.0
  • chore(deps): bump github.com/google/uuid from 1.4.0 to 1.5.0
  • chore(deps): bump actions/upload-artifact from 3.1.3 to 4.0.0
  • chore(deps): bump go.uber.org/mock from 0.3.0 to 0.4.0
  • chore(deps): bump github.com/go-logr/logr from 1.3.0 to 1.4.1
  • chore(deps): bump EnricoMi/publish-unit-test-result-action from 2.11.0 to 2.12.0
  • chore(deps): bump reviewdog/action-golangci-lint from 2.5.0 to 2.5.1
  • chore(deps): bump actions/upload-artifact from 4.0.0 to 4.1.0
  • chore(deps): bump golang from 1.21.5-alpine to 1.21.6-alpine
  • chore(deps): bump golang.org/x/oauth2 from 0.15.0 to 0.16.0
  • chore(deps): bump github.com/invopop/jsonschema from 0.7.0 to 0.12.0

Full Changelog: v2.9.3...v2.10.0

Get Monaco

Installation instructions for Windows, Linux, and MacOs as well as Docker are available in our documentation.

2.9.3

11 Dec 12:23
Compare
Choose a tag to compare

What's Changed

🐛 Fixes

  • Fixed error when deploying some pre-configured Settings objects, wrongly reporting … ExternalID … already exists errors.
  • We're no longer skipping the download of Settings objects that are partially modifiable.
  • We're now correctly supporting compound parameters for a config's name.
  • Extraction of IDs when downloading is improved - no longer wrongly extracting partial IDs.
  • Buckets are no longer downloaded if download is limited to other types via flags.

🔧 Improvements

Other improvements

  • Update to Go 1.21
  • bump golang from 1.21.4-alpine to 1.21.5-alpine
  • bump actions/setup-go from 4.1.0 to 5.0.0
  • bump golang.org/x/oauth2 from 0.13.0 to 0.14.0
  • bump github.com/spf13/afero from 1.10.0 to 1.11.0
  • bump golang.org/x/oauth2 from 0.14.0 to 0.15.0
  • Docker: bump alpine from 3.18 to 3.19

Full Changelog: v2.9.2...v2.9.3

Get Monaco

Installation instructions for Windows, Linux, and MacOs as well as Docker are available in our documentation.

2.9.2

06 Nov 15:56
v2.9.2
Compare
Choose a tag to compare

What's Changed

🐛 Fixes

Fix failing to deploy multiple non-unique name configs having the same name.

Previous versions of Monaco would fail to deploy multiple non-unique name configurations with the same name.

If such overlapping configurations were defined, the end result would be a single configuration on the environment.
This was due to a feature ensuring non-unique name configs are updated instead of duplicated if only a single one is found in the environment.

The fix retains that handling which increases usability in cases that users keep names unique, but deactivates it, if a deployment defines several configurations with the same name.

Fix sometimes failing Grail Bucket updates

Previous versions relied on retries to handle state changes of Grail Buckets, however it was found that in some cases, especially if create and update actions happen in quick success this does not resolve all errors and can lead to failed deployments.

The Grail Bucket API client is reworked to await the desired bucket state for each operation. This makes deployments and deletions slightly slower, but ensures that Buckets are always ready to use/modify or fully removed before monaco continues to deploy/delete possibly dependent configurations.

🔧 Improvements

Notify when new versions are available

From this version on, the monaco CLI performs a background version check and will print a message at the end of each command execution if a new version is available for download.

This is implemented by connecting to GitHub. If no connection can be established, the check will silently fail in the background, without impacting the command you're executing.

This behavior is turned ON by default and can be disabled by setting MONACO_SKIP_VERSION_CHECK if needed.

Other improvements

  • Bump dependency github.com/go-logr/zapr from 1.2.4 to 1.3.0
  • Bump dependency github.com/spf13/cobra from 1.7.0 to 1.8.0

Container image

Images are available on DockerHub.
The image can be used directly, passing command arguments to the CLI directly or in CI with a monaco executable available in the container.

docker pull dynatrace/dynatrace-configuration-as-code:2.9.2

Verifying Signature

The Image is signed, and its signature can be verified using cosign and the cosign.pub key that can be downloaded from this release.

 cosign verify --key cosign.pub dynatrace/dynatrace-configuration-as-code:2.9.2

Full Changelog: v2.9.1...v2.9.2

2.9.1

16 Oct 15:40
v2.9.1
2be93f3
Compare
Choose a tag to compare

What's Changed

🐛 Fixes

Allow deactivating updates of single non-unique-name configs by name

This feature can break the deployment of projects containing several configurations with the same name

You may be affected by this if you're configuration projects contain e.g. several dashboards of the same name, but you only find a single one in the environment after running `monaco deploy.

To deactivate the update logic, set the following environment variable:

MONACO_FEAT_UPDATE_SINGLE_NON_UNIQUE_BY_NAME=false

Deactivating this feature is recommended when using monaco to migrate configurations from one environment to an empty new environment.

This is a temporary workaround! We're working on a fix addressing both edge-cases of having a single configuration you want to update and many configurations that should be created individually.

Other fixes

  • Consider environment overrides when generating delete files.
  • Do not download Grail buckets that are currently being deleted.
  • Remove unnecessary curl and jq dependencies from the Docker container.

🔧 Improvements

Defer loading of JSON templates to the point they are needed

This change, combined with previously released changes, vastly improves Monaco's runtime memory consumption.

For details, refer to the documentation: Monaco hardware requirements

Other improvements

  • Allow generating delete files for a specific environment
  • Improve some log messages

Container image

⚠️ As of this version the container image only includes the monaco CLI! ⚠️
The previously contained curl and jq utilities are removed to ensure the image does not contain unnecessary, potentially vulnerable components.
If you require a container with utility programs, please build your own based on this container image.

Images are available on DockerHub.
The image can be used directly, passing command arguments to the CLI directly or in CI with a monaco executable available in the container.

docker pull dynatrace/dynatrace-configuration-as-code:2.9.1

Verifying Signature

The Image is signed, and its signature can be verified using cosign and the cosign.pub key that can be downloaded from this release.

 cosign verify --key cosign.pub dynatrace/dynatrace-configuration-as-code:2.9.1

Full Changelog: v2.9.0...v2.9.1

2.9.0

05 Oct 09:09
de70797
Compare
Choose a tag to compare

What's Changed

🚀 Features

Support for custom Grail buckets

Custom Grail buckets can now also be managed as configuration as code.
The best way to get started is to download configurations from a Platform environment where you have configured a custom Grail bucket.
You can find the documentation here.

You can also look at this sample project.


Container image

Images are available on DockerHub.
The image can be used directly, passing command arguments to the CLI directly or in CI with a monaco executable available in the container.

docker pull dynatrace/dynatrace-configuration-as-code:2.9.0

Verifying Signature

The Image is signed, and its signature can be verified using cosign and the cosign.pub key that can be downloaded from this release.

 cosign verify --key cosign.pub dynatrace/dynatrace-configuration-as-code:2.9.0

Full Changelog: v2.8.3...v2.9.0

2.8.3

04 Oct 11:48
11888e6
Compare
Choose a tag to compare

🔧Improvements

  • Added deploymentStatus field to structured logs #1201
  • In addition to the existing log file, we're now writing log files only containing errors. This error file will be stored as .logs/[timestamp]-errors.log #1183
  • When printing what configs are skipped, the structured logging now includes the child-field.

🐛Fixes

  • Vulnerability: Mitigated the possibility of having credentials logged during the execution of a specific Monaco command.
  • We're now matching Settings 2.0 key properties correctly. #1178
  • We improved our memory footprint by not printing all errors at the end of the Monaco-execution. Errors are printed whenever they happen, and only a summary is printed how many errors happened for each environment at the end. #1185
  • We're not reporting correctly whenever the property inside a reference is missing #1194
  • We've also fixed several occurrences of unstructured logs inside the structured logging-mode. #1193

Container image

Images are available at https://hub.docker.com/r/dynatrace/dynatrace-configuration-as-code

The image can be used directly, passing command arguments to the CLI directly or in CI with a monaco executable available in the container.

docker pull dynatrace/dynatrace-configuration-as-code:2.8.3

Verifying Signature

The Image is signed, and its signature can be verified using cosign and the cosign.pub key that can be downloaded from this release.

 cosign verify --key cosign.pub dynatrace/dynatrace-configuration-as-code:2.8.3

Full Changelog: