Releases: atlanhq/atlan-java
Releases Β· atlanhq/atlan-java
v1.10.0
π New features
- Adds Essbase connector type
- Adds further criteria through which to search audit logs
- Adds option, when running batches in update-only mode, to match assets case-insensitively
- Package toolkit
- Adds FileCopier widget to copy files from S3 without uploading them
- Adds utility method to send emails (including attachments)
- (Experimental) Adds new CSV transformation capabilities to preprocess CSV files (typically prior to hand-off to another package)
- (Experimental) Adds S3 sync capability (download objects from, or upload to an S3 bucket and prefix)
- (Experimental) Adds capability to calculate delta between two CSV input files, and determine assets to remove as a result
- (Experimental) Adds ability to stream SQL query results
π Bug fixes
- Ensures sorting by GUID is always present for searches, as a tie-breaker
- Fixes portion of API token payload dealing with assigned personas
- Fixes association of parent process when creating a column process
- Package toolkit
- Fixes bugs with widgets: date and multi-user
- Fixes batching deletion
- Fixes counters for related asset loading
- Fixes handling of multi-value-capable custom metadata attributes with only a single value
π₯ QOL improvements
- Alternative to ARN when creating S3 buckets and objects
- Moves validation of API tokens as users to user cache (no longer connection-specific)
- Allows user and group caches to avoid refreshes on cache misses
- Package toolkit
- Defaults all configuration values to
null
to simplify tests and package reuse - Adds logging of the specific assets that are skipped when running an update-only package
- Opens relational asset builder package for reuse and extension
- Opens asset import package for reuse and extension
- Adds option to skip tracking of created and updated assets when batch processing (to limit memory usage)
- Defaults all configuration values to
π¦ Packages
- Adds email option to admin export package
- Allows connector type to be set independently from asset's qualifiedName, for relational asset builder
- Adds option to include or exclude system-level description, for asset export (basic) package
- (Experimental) Adds new adoption exporter package, to monitor Atlan usage (asset views, asset changes)
- (Experimental) Adds new enrichment migrator package, to migrate enriched metadata from assets in one connection to the same assets in another connection
βοΈ Background changes
- Adds integration test demonstrating applying a persona data policy to grant access to querying, then a purpose data policy to redact sensitive data through such a query β all applied to an API token's ability to run SQL queries against data (and therefore only receive back redacted results)
- Adds tenant-internal S3 bucket and region to all generated package configs
- Automated tests fixes and cleanups
v1.9.0
π New features
- (Experimental) Refactors packages (workflows for crawlers)
- (Experimental) Adds crawlers for Glue, Kafka (Confluent) and Power BI
- (Experimental) Adds credential management for packages
- Adds handling for source tag attachment details on assets, for tags that are synced from a source (like Snowflake)
π Bug fixes
- Fixes an issue in the asset import package where certain numeric values were not correctly interpreted leading to a fatal error
- Removes tag color restrictions, to fix potential errors deserializing tags that have been defined with an arbitrary color
π₯ QOL improvements
- Adds an option to export only glossaries in the asset export (basic) package
v1.8.4
π New features
- (Experimental) Adds a new option to the Link
creator
method to support unique-per-asset Links, based on their title
π Bug fixes
- Adds blocking call when creating connections in an asset batch to avoid permission race conditions
- Fixes the group validation when setting groups as subjects for purpose policies or personas
- Adds more meaningful error message to relational assets builder custom package if a column refers to a non-existent parent table/view
- Fixes a bug where assigned terms in an asset file for the asset import custom package would fail with a
ClassNotFoundException
βοΈ Background changes
- Fixes JavaDocs on group cache to clarify the different human-readable vs internal names
v1.8.3
π New features
- (Experimental) Query the search log, to monitor for example the most recent viewers of an asset or the kinds of searches users are running
- Adds model for DynamoDB assets
- Adds
creator
andupdater
methods for Salesforce assets
π Bug fixes
- Fixes a bug in asset import custom package when
typeName
appears as the very first column
βοΈ Background changes
- Bumps a transitive dependency to its latest version to address an open CWE
v1.8.2
(Note: this is essentially a re-release of 1.8.1 due to some hiccups with the dependency packaging and custom package bundling, so release notes below are as from the 1.8.1 release.)
π New features
- (Experimental) Adds capability to read and write Excel files in the custom package runtime toolkit
- (Preview) Adds a new custom package that calculates various metadata metrics
- (Preview) Adds a new custom package to extract administrative information (users, groups, personas, purposes, policies)
π Bug fixes
- Fixes a bug in multi-select serialization that would cause integration tests to fail
- Fixes a NullPointerException that could occur when a README exists but has no description
- Fixes an issue in the asset export (basic) custom package when not exporting any glossaries
π₯ QOL improvements
- Improves FluentSearch's flexibility to translate easily to other objects
- Adds a default restriction to limit FluentSearch results to "real" assets (skipping internal
__...
assets) - Refactors CSV writing for reusability in the custom package runtime toolkit
- Refactors timestamp formatting for reusability in the custom package runtime toolkit
- Fixes generation of JavaDocs for attributes, so these should now be mostly complete (previously
TBC
was very prevalent)
v1.8.1
π New features
- (Experimental) Adds capability to read and write Excel files in the custom package runtime toolkit
- (Preview) Adds a new custom package that calculates various metadata metrics
- (Preview) Adds a new custom package to extract administrative information (users, groups, personas, purposes, policies)
π Bug fixes
- Fixes a bug in multi-select serialization that would cause integration tests to fail
- Fixes a NullPointerException that could occur when a README exists but has no description
- Fixes an issue in the asset export (basic) custom package when not exporting any glossaries
π₯ QOL improvements
- Improves FluentSearch's flexibility to translate easily to other objects
- Adds a default restriction to limit FluentSearch results to "real" assets (skipping internal
__...
assets) - Refactors CSV writing for reusability in the custom package runtime toolkit
- Refactors timestamp formatting for reusability in the custom package runtime toolkit
- Fixes generation of JavaDocs for attributes, so these should now be mostly complete (previously
TBC
was very prevalent)
v1.8.0
π New features
- (Experimental) Extends custom package toolkits to cover testing and events (pipelines)
- (Experimental) Adds initial support for data domains and data products
- Adds a
ParallelBatch
, for batching asset creates and updates across threads that are running in parallel - Adds custom package example for:
- Creating and updating arbitrary relational database assets from a CSV
- Extends asset export (basic) and asset import packages to handle glossaries, categories and terms
- Adds a method to update individual Atlan tags on assets
βοΈ Breaking changes
- Removes the
delete()
andrestore()
methods for categories. Categories can currently only be purged (hard-deleted), so even when previously calling thedelete()
method the backend actually translated this to a hard-delete (purge). (Which also means there is no way to restore a category.) We have therefore opted to remove thedelete()
andrestore()
methods β only for categories β to make it clearer that categories can only be purged (hard-deleted).
π Bug fixes
- Increases default timeout for creating API tokens, to fix possible timeout that could occur
- Increases default retry count for blocking on asynchronous actions (for example, creating new connections)
- Fixes issues related to default values for custom package configuration variables (nulls, empty values, overlapping file upload keys)
- Fixes issues related to optional file uploads in custom packages
- Fixes an issue where the results tracking for batch-created assets could leave out the GUID of the created asset
π₯ QOL improvements
- Adds asset caching interface to custom package runtime toolkit
- Custom package configurations are now strongly-typed throughout runtime
- Adds all known widgets to custom package configuration toolkit
- Adds integration testing for custom packages, with isolated outputs to allow multiple tests per custom package (module)
- Refactors CSV parsing to support multi-pass processing (to maximize efficiency)
- Improves asset counts and logging for custom packages, given multi-pass processing (filtering each pass)
- Adds user and group validation to custom packages that import metadata
- Adds a configurable failure option on such invalid values (logging and skipping them vs failing the package outright)
- Adds sensible default values for widgets
βοΈ Background changes
- Removes logback to avoid logger multiplicity and related binding errors and warnings
- Adds custom package integration tests to regression testing cycles
- Refactors some custom packages to simplify debugging (where there is overlap in class or object names)
v1.7.0
π New features
- (Experimental) Adds custom package toolkits, currently covering configuration and runtime
- (Experimental) Adds preliminary support for updating workflows
- Adds custom package examples for:
- Assigning API tokens as connection admins
- Exporting enrichment information for assets
- Importing assets in bulk
- Detecting duplicate assets
- Crawling OpenAPI specifications
π Bug fixes
- Fixes an issue where retrieving an already-existing asset's details from an
AssetMutationResponse
would not work. - Removes the
updater()
method fromAuthPolicy
. This is technically a breaking change, but never worked to begin with. Instead, policies should be retrieved, updated, and saved β not partially-constructed using theupdater()
method (this would never have worked).
βοΈ Background changes
- Consolidates Java-based code repositories into a single place, with a move to a multi-project Gradle build
- Migrates to Kotlin build scripts over Groovy
- Refactors dependency management and adds version catalog to build for consistency
- Refactors unit and integration tests across the multiple projects, including reusable wire mocks
v1.6.0
π New features
- Adds option to only update assets in a batch, never create (default behavior to both create and update remains unchanged)
- Adds ability to define an icon when creating a glossary, using the
.assetIcon()
chain-able. - Adds support to limit which assets a custom metadata attribute applies to.
- Adds Sisense type definitions.
π Bug fixes
- Fixes
qualifiedName
generation for Google Data Studio assets. Through thecreator
method you can now provide the unique identifier from Google Data Studio itself (recommended) or allow a random UUID to be generated (to maintain backwards compatibility of the interface). - Updates the sidebar tab listing for persona and purpose preferences to the latest list of sidebar tabs.
- Fixes a bug where the
CategoryHierarchy
class'sgetCategory
method would not contain all categories in the hierarchy.