Skip to content

Releases: atlanhq/atlan-java

v1.10.0

16 Jan 17:55
Compare
Choose a tag to compare

πŸŽ‰ 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)

πŸ“¦ 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

27 Dec 23:23
Compare
Choose a tag to compare

πŸŽ‰ 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

19 Dec 19:46
Compare
Choose a tag to compare

πŸŽ‰ 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

09 Dec 19:58
Compare
Choose a tag to compare

πŸŽ‰ 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 and updater 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

05 Dec 20:29
Compare
Choose a tag to compare

(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

05 Dec 14:49
Compare
Choose a tag to compare

πŸŽ‰ 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

30 Nov 21:30
Compare
Choose a tag to compare

πŸŽ‰ 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() and restore() methods for categories. Categories can currently only be purged (hard-deleted), so even when previously calling the delete() 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 the delete() and restore() 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

14 Nov 14:41
Compare
Choose a tag to compare

πŸŽ‰ 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 from AuthPolicy. This is technically a breaking change, but never worked to begin with. Instead, policies should be retrieved, updated, and saved β€” not partially-constructed using the updater() 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

06 Nov 12:16
Compare
Choose a tag to compare

πŸŽ‰ 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 the creator 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's getCategory method would not contain all categories in the hierarchy.

v1.5.0

19 Oct 15:28
Compare
Choose a tag to compare

πŸŽ‰ New features

  • (Experimental) Adds new FluentLineage interface to simplify traversing lineage