Releases: Dynatrace/dynatrace-configuration-as-code
2.14.2
⚙️ Improvements and 🐛 Bug Fixes
- Improved support archives coverage. Support archives are now closed as late as possible to ensure they contain all log messages.
- Log partial download failures as warnings. Failures which still allow configuration downloads to continue are logged as warnings rather than errors.
Full Changelog: v2.14.1...v2.14.2
2.14.1
🐛 Bug Fixes
- Fixed an error that occurred when downloading ordered Settings objects. If some objects were skipped during download, an index out of range caused a panic.
Full Changelog: v2.14.0...v2.14.1
2.14.0
🚀 New Features
-
Monaco now supports ordering of Settings 2.0 objects via the
insertAfter
reference parameter. See the docs for details -
New
file
parameter type that is dynamically resolved to the contents of a file. See the docs for details -
Specific Automation and Settings objects may be deleted by their Dynatrace ID, by defining their
objectId
rather than configurationid
in delete files. For example, to delete aworkflow
Automation resource with ID6d9995b4-cd3e-4071-8fe3-82be7e762e67
, use:- type: workflow objectId: 6d9995b4-cd3e-4071-8fe3-82be7e762e67
-
The creation of log files can be disabled by setting
FEAT_LOG_FILE_ENABLED
to0
orfalse
.
⚙️ Improvements and 🐛 Bug Fixes
- Automation resources are now deleted in the correct order: first
workflow
objects, followed byscheduling-rule
objects and finallybusiness-calendar
objects. - Conversion goal IDs are removed from the payload of
application-web
objects on download. This ensures they can be deployed to new environments, previously deployments would fail with an API error. - Settings schemas are now fetched in parallel, significantly reducing the time required for downloads
Full Changelog: v2.13.0...v2.14.0
2.13.0
🚀 New Features
New supported configuration:
- Added support for managing Key User Actions for Web Applications
⚙️ 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
anddescription
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 variableMONACO_SKIP_READ_ONLY_ACCOUNT_GROUP_UPDATES
totrue
or1
. Permissions and policies are deployed as normal.
Full Changelog: v2.12.0...v2.13.0
2.12.0
🚀 New Features
New scoped Config API types are supported by Monaco:
- Key User Actions for Mobile Applications
- User Actions And Session Properties for Mobile Applications
- Dashboard Share settings for classic Dashboards
See the documentation for details on configuring these new types.
🐛 Bug Fixes
builtin:oneagent.features
settings 2.0 objects can not be deleted #1427- HTTP 403 error when handling automation resources as non admin Dynatrace/dynatrace-configuration-as-code-core#89
🧹 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
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 forcalculated-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
- @arthurpitman made their first contribution in #1368
Full Changelog: v2.10.1...v2.11.0
2.10.1
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
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 schemasbuiltin:span-attribute
,builtin:span-event-attribute
, andbuiltin: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
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
- Native Monaco Docker image for
linux/arm64
is now available. - Increased timeout for Grail bucket operations to 5 minutes.
- Reduced docker permissions.
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
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