Changelog
All notable changes to Dangl.AVACloud are documented here.
v1.54.15:
- The admin UI can now show clients grouped by customers, so it's possible to see aggregated total conversions for all clients of a customer
v1.54.0:
- There is now a validation feature also for XRechnung files
v1.53.1:
- Individual
ExecutionDescription.Block
elements now also support theStandardizedDescription
property for GAEB im- and exports
v1.53.0:
- Added
ItemNumberSchemaTier.Alignment
property - When importing GAEB 2000 files with invalid item numbers, those will now tried be be preserved (and possibly corrected) instead of simply being ignored
- When exporting to Excel, it's now possible to lock all cells except those for price inputs
v1.52.2:
- When importing Excel files, positions without total price are also now recognized if new element import is enabled
- When working with AVA projects, it's now possible to set
ItemNumberSchema.disableLeftPaddingTiersWithFiller
totrue
to disable automatic left-padding and filling of single tiers in item numbers
v1.52.1:
- Fixed a bug in the AVAtoAVA conversion where the specified price rounding mode was not used for total prices if the option to force strict total prices was disabled
v1.52.0:
- AVACloud now supports XRechnung, the German e-invoicing format. Both a direct representation of the invoice model is available, as well as a conversion to and from the known Dangl.AVA format via a wrapper class with additional, required invoice data. This is currently in a preview state, please contact us if you want to learn more about this feature. The documentation is not yet finished, and the feature might change until it's declared stable. In the future, XRechnung might also be available separately as an addon, and may not be part of the core AVACloud offering.
v1.51.0:
- When converting AVA to REB, it's now possible to specify the last used row address. This is useful for incremental exports, where the new file should continue with the next free address after the last used one in a previous quantity determination
v1.50.0:
- GAEB & ÖNorm validations no longer return bad requests in case of non-readable files, but instead return validation results with a single critical error stating that the file could not be read
v1.49.4:
ARM
Docker images for the self-hosted version are now also tagged for stable releases
v1.49.1:
- The Dangl.AVACloud.Admin app now offers some database maintenance insights and is runnign recurring jobs for general database maintenance (SQLServer only for now)
v1.49.0:
- Text addition identifiers in GAEB 90 exports are now left- instead of right-padded
- When exporting GAEB XML text additions that have an empty body,
<span>
element with a space character is added to the body. This is to prevent Xml schema validation to fail, since the body of a text addition can not be completely empty. When creating offer requests, it is recommended to fill the body with e.g. a placeholder text, such as..........
- Bugfixes in UGL exports
- The Excel dependency was updated. While functionally the same, the default implementation when deserializing Excel will no longer recalculate Excel formulas. This should not cause issues for real usage, but if Excel files are automatically generated with formulas that should be recalculated, this might cause issues.
v1.48.0:
- Updated internal dependencies
- Fixed an issue with publishing, previously version
2.0.0
of AVACloud was accidentally released
v1.47.0:
- The new property
PriceInformation.HasUnsetTaxRate
now allows differentiating between projects that have a zero0
and those that have anull
tax rate set - Fixed some formula conversions in D11 and X31 files
- Exporting totals in GAEB XML now uses correct rounding, outputs may now produce slightly different values due to that
v1.46.0:
- The backend was updated to .NET 8
- The On Premises variant is now also available as standalone Windows & Linux executables
- Fixed a bug when importing X31 files with an index in position item numbers
- Added a new controller called
FlatAvaConversionController
, which supports import and export of flat lists of elements. This is useful for scenarios where working with hierarchical structures is difficult - The Oenorm export will now try to export correct
ftnr
values for positions, if strict Xml export options are enabled. This can possibly result in different output than before, but is necessary to export correct files
v1.45.0:
- When importing GAEB files, it's now possible to set the
AllowLumpSumItemsWithDifferingQuantities
query parameter to allow importing of lump sum positions that have a quantity different than one. Otherwise, AVACloud corrects such positions to have a quantity of exactly1
v1.44.0:
- Added a new query parameter
IncludeArticleNumbers
when exporting Excel files. If this is set, then a new column with article numbers, read fromposition.commerceProperties.articleNumber
, will be included in the output - When converting to
Sia
, AVACloud now also supports Ifa18 as target format. This is controlled via a new query parameter
v1.43.0:
- Added support for
Position.PriceCatalogueData
, to transfer price estimation data in GAEB XML exchanges - Added
Catalogue.CatalogueTypeDetail
to preserve the actual catalogue type from GAEB XML. It is now possible to differentiate between e.g. versions for the DIN 276 catalogue type
v1.42.0:
- Added support for IDS Connect import and export
v1.14.8:
- Clients that have passed the GAEB certification with AVACloud as their export tool can now export their GAEB files with the mark that the application is certified. This needs to be configured by DanglIT staff, please contact us to enable this for your clients
v1.41.0:
- Added support for converting between Dangl.AVA and the product data formats
DATANORM
andUGL
- The Admin UI was updated to Angular v15
- Added support for allowing uppercase item numbers when importing GAEB files
v1.40.0:
DestinationRebType.X31GaebXmlV33
was added, to allow exporting to X31 files with GAEB XML V3.3 as the target format- Added
PostGaebSourceOptions.OutputHtmlAsXml
andPostGaebSourceOptions.KeepEmptyHtmlText
to be able to control how long texts in GAEB XML formats are imported - The Admin UI was updated to Angular v15
v1.39.0:
- The database was updated to now aggregate and archive conversion stats for older conversions. While details about single conversions are no longer kept indefinitely, client total conversions will still be available
v1.38.0:
- Added
ServiceSpecification.BidDate
- Added
ServiceSpecification.WarrantyBondPercentage
- Added
ServiceSpecification.ExecutionGuaranteePercentage
- Added
ProjectInformation.Requesters
- Added
ProjectInformation.NotificationSites
- Added
CommerceProperties.SubPositionIdentifier
v1.37.0:
- The option
RemoveUnprintableCharactersFromTexts
for XML based target formats (GAEB and ÖNorm) now defaults totrue
. If you want to serialize unprintable characters, it needs to be specifically enabled
v1.36.0:
- Added
Position.GaebComplementingType
as a new enum property to transport information about GAEB markup / complementing types in positions. This means that in GAEB XML and GAEB 2000, the different markup types are now preserved. From a Dangl.AVA perspective, there are no changes required to implement on your side, but exports might now look different than before, meaning they more accurately preserve the data in the original GAEB file
v1.35.0:
- The GAEB target for version 3.3 has been updated to now export GAEB XML V3.3 with version year
2021-05
. The original GAEB XML V3.3 with version year2019-05
has been pulled back by GAEB. The original, older version may still be exported with the targetsGaebXml_V3_3_2019
orGaebXml_V3_3_2019_Commerce
- AVACloud clients are now automatically published during AVACloud CI
v1.34.0:
- On premise hostings of AVACloud can now run databaseless, please see the README for instructions how to configure this
- On premise hostings of AVACloud can now run without authentication, please see the README for instructions how to configure this
- AVACloud was updated to .NET 7
v1.32.4:
- Docker images for AVACloud self hosted versions are now also available for ARM images, e.g. to run on Macs with Apple M1 chips
v1.32.0:
- Added
Position.OenormProperties.OenormShortText
andPosition.OenormProperties.OenormShortTextAddition
to the Dangl.AVA data model
v1.31.1:
- Added
SubDescriptionDto.UnitTag
as a new property
v1.31.0:
- Added
ConsiderNullItemNumberSchemaAsInvalidForRebuildOperation
as a boolean query parameter when converting to GAEB targets. This defaults to false, but if enabled, can be used to instruct AVACloud to considernull
values inItemNumberSchema
s as invalid schemas, and thus triggering a rebuild attempt for the schema
v1.30.0:
- Endpoints that produce GAEB files now have an optional query parameter
ForceIncludeDescriptions
that, when set totrue
, will force include all description elements likeLongText
properties andExecutionDescription
elements. This is useful when exporting to GAEB 84 - Offer phases when you still want to keep the descriptions - All elements of type
IElementDto
now support catalogue references, meaning that it is now possible for users to use those in elements of typeNoteText
andExecutionDescription
. This is, however, not supported for exchanges into other formats and can only be used within the AVA project itself - A new validation endpoint was added, that allows users to validate AVA projects, GAEB & ÖNorm files
v1.29.0:
- GAEB 2000 files now support images, both for import and export scenarios
- Fixed an issue with the .NET clients, newly introduced enum values caused the deserialization of JSON responses to fail for older client libraries. Starting now, the clients libraries will assume the default enum values for unrecognized values
- When converting to REB, it's now possible to also convert to X31 files
v1.28.0:
- Added
CatalogueType.OenormB1801CostGroup
, which can be used in ÖNorm XML based exchanges to describe ÖNorm B 1801 cost groups attached to positions - Added
AbsoluteDeduction
toServiceSpecification
andServiceSpecificationGroup
elements, which is supported in GAEB 2000 and GAEB XML exchanges. This is available as a backwards compatible way, meaning that theDeductionFactor
of those elements will still be present
v1.27.5:
- Fixed a bug when importing GAEB 90 and GAEB 2000 files with skipped item number levels and top level positions that have an index defined
v1.27.0:
- The AVACloud backend was updated to .NET 6
- AVA dependencies were updated,
Position.HtmlLongText
now supports a bidder comment, wrapped in adiv
element withclass="bidder-comment"
at the end of the text. Additionally, all description elements now have a new boolean property indicating if the used long text contains a bidder comment. Please see the documentation for Dangl.AVA for more details
v1.26.1:
- The max size for file uploads was increased to 50 MB
v1.26.0:
- When importing GAEB files, it is now possible to set the
supportSkippedItemNumberLevelsInPositions
. This defaults to false, but enables a new feature that properly supports skipped item number levels in GAEB files. For example, if an item number schema defines two group levels and one position level, but the position has is at the second level in the hierarchy, the item number may be displayed as01.__.02
instead of01.02.
. This is in accordance to the GAEB standard, but is currently specified as an opt-in behavior. Since this feature is still considered to be under testing, it might be updated or changed in future releases - Endpoints that take an AVA project now have an optional feature to automatically generate the
ItemNumberSchema
and individualItemNumbers
in case it's missing - Added feature to optionally remove unprintable characters when exporting to GAEB or ÖNorm, to ensure valid XML can be generated
v1.25.0:
- Multiple bugfixes for handling ÖNorm B2063 files
v1.24.0:
- Self-hosted instances can now be configured to allow
Http
scheme in the Swagger documentation instead ofHttps
- The ÖNorm and SIA / Ifa dependencies were updated and include many bugfixes. The import and export results may be different than in previous versions. While the element structure was not changed, many fixes are related to how elements are mapped between Dangl.AVA and the Austrian and Swiss formats
v1.23.0:
- The handling of ÖNorm B2063 file was improved. Among several bugfixes, AVACloud now supports missing optional group levels and handles them correctly. This means that internally, the project structure is not restored to a valid number of parent group levels, which means that importing ÖNorm B2063 files from now one might return different, but more correct results
v1.22.0:
- The internal packages were updated, there's a new property
Position.AlternativeGroupIdentifier
available in the Dangl.AVA model that allows users to explicitly specify the group identifier used when exporting base and alternative positions
v1.21.0:
- When converting to ÖNorm Xml based formats, AVACloud will now default to try outputting valid Xml files according to the schema. This means that required but missing properties will be filled with sensible defaults
- Conversions that target ÖNorm can now set a new query parameter
SkipTryEnforceSchemaCompliantXmlOutput
to disable strict Xml output when creating ÖNorm files - Several smaller bugfixes when deserializing GAEB files have been added
v1.20.0:
- Dangl.AVACloud now supports the new ÖNorm V2021 format for import and export
v1.19.0:
- GAEB exports to GAEB XML can now optional export
QtyDeterm
items (Quantity Determination or Quantity Take Off), which can be used to export detailled quantity calculations via GAEB - The internal modules were updated to support more features, mostly for GAEB and ÖNorm
- The SIA endpoint can now also deserialize
crbx
Ifa18 files - Subscriptions to AVACloud are now no longer handled by the service itself, but by the external identity provider
- Responses on the public instances should now correctly compress, even those being served from the Cloudflare CDN endpoints. This saves around 90% of bandwidth for most request scenarios
- Dangl.AVACloud was updated to .NET 5
- For on premise or self hosting customers, Dangl.AVACloud can now be configured to use API key authentication, thus no full integration with Dangl.Identity is required
- For on premise or self hosting customers, Dangl.AVACloud now supports PostgeSQL in addition to SQL Server and SqlAzure_ as database providers
v1.18.0:
- Added support to export ÖNorm files to V2009
v1.17.0:
- Added a new parameter
EnforceStrictOfferPhaseLongTextOutput
when converting to GAEB. This parameter is only applied when the conversion target is GAEB XML and the exchange phase isOffer
. This leads to long text exports being strict, meaning that only text addition segments are exported and all other textx are removed from the export, even if the containing element is marked to contain a text addition - Added support for the old ÖNorm B2063 format in import and export scenarios. This is still in a preview state, no guarantee is given that the import and export is working correctly
v1.16.8:
- Fixed a bug where embedded images in Excel files could cause the deserialization to fail. This was caused by missing native dependencies in the Docker images. This did not impact most Excel files, since images are not supported when importing Excel in AVACloud
v1.16.0:
- All endpoints that accept the Dangl.AVA format now accept explicitly empty string values for Guids and enumerations. These empty values will resolve to their internal default values and should make it easier to implement clients
- The Swagger specification now correctly describes the
application/problem+json
content type that may be returned for some Http status codes when client side errors occur
v1.15.4:
- The Excel conversion controllers now internally abort the conversion if the client closes the connection to free up server ressources
v1.15.0:
- Dangl.AVACloud now runs on ASP.NET Core 3.1 and uses the latest Dangl.Identity integrations
v1.14.2
- When the source format is an AVA Project, it is now possible to set both
ProjectTaxRate
andProjectHourlyWage
directly on aServiceSpecification
when theServiceSpecification.PriceInformation
element is missing
v1.14.0:
- Internal dependencies were updated to support additional properties in the AVA project model
v1.13.0:
- When exporting to GAEB or ÖNorm, the
ProgName
value can now be controlled by the user. By default, the name of the OpenID client will be used. This can be configured by setting a special client claim. Please see the documentation for more details
v1.12.0:
- The Dangl.AVA data model was updated and now supports
ProductData
- Import of REB and GAEB X31 files for quantity takeoff is now supported
v1.11.0:
- Properties that represent
DateTime
are no longer marked asrequired
by the Swagger definition endpoint. This is because the underlying .NET model uses non-nullableDateTime
properties that are omitted from serialization if they have no actual value set
v1.10.0:
- AVACloud now supports GAEB XML v3.3 files in import and export scenarios. This does not change the public interface but only introduces a new
DestinationGAEBType
value
v1.9.1:
- Add
AvaToAva
conversion to regenerate calculated properties - Fix regression where properties with default values, e.g.
DateTime
, were not omitted from the output whenProjectDto
s were returned
v1.9.0:
- Add support for importing properietary
aslv
files
v1.8.1:
- The interactive documentation was changed back to use Swagger 2.0 instead of OpenAPI 3.0, since most tools still have compatibility issues with the newer specification
v1.8.0:
- The generated assemblies now have a strong name. This is a breaking change of the binary API and will require recompilation on all systems that consume this package. The strong name of the generated assembly allows compatibility with other, signed tools. Please note that this does not increase security or provide tamper-proof binaries, as the key is available in the source code per Microsoft guidelines
v1.7.21:
- Add initial support for GAEB XML Version 3.3
v1.7.18:
- Update of internal dependencies for latest bugfixes around GAEB imports
v1.7.9:
- Significant performance increase for projects with tens of thousands of elements
v1.7.8:
- The Swagger definitions were updated to include better formatted descriptions
v1.7.5:
- The Swagger definitions for the API specification were updated to be better compatible with third party code generators
v1.7.4:
- Update Dangl.GAEB and Dangl.AVA.Converter to be able to import GAEB XML files with an invalid exchange phase (
Award.DP
field)
v1.7.1:
- Fix startup error that triggered for specific configuration in Azure App Services and prevented the app from starting
v1.7.0:
- AVACloud can now export to ÖNorm 2063
- AVACloud can now import and export the Swiss SIA 451 format
v1.6.2:
- Fixed wrong return type in generated .NET client code
- Include
AvaConversionClient
in client factory in public package
v1.6.0:
- Introduced support for the German REB DA11 file format. This format is used for quantity takeoff and quantity calculations
- The Dangl.AVA, Dangl.GAEB and Dangl.AVA.Converter dependencies were updated
v1.5.10:
- Dependencies update for latest bugfixes with GAEB XML import and export
v1.5.6:
- Dependencies were updated. Dangl.AVACloud now supports the overrides introduced with the latest Dangl.AVA.IO release for some properties
- The public documentation was updated with information about the unified Dangl.AVA project model
v1.5.4:
- The Dangl.GAEB dependency was updated
v1.5.3:
- The Dangl.AVA and Dangl.AVA.Converter dependencies were updated to include the latest additions of properties
v1.5.2:
- All parameters of type
IFormFile
are now checked to ensure their length is greater than zero. Otherwise, the request will return a400 - Badrequest
status code without hitting the controller
v1.5.1:
- Added
AvaProjectDtoValidationAttribute
to ensure that invalid AVA Projects sent as parameters lead directly to a 400 - Bad Request response and don't hit the conversion service at all - Updated Dangl.GAEB to
v1.6.7
for latest improvements to deserialize GAEB XML files with missing GAEBInfo declarations
v1.5.0:
- The Dangl.AVA dependencies were updated to
v2.1.0
. This now also includes support for the new destination GAEB phasesSideOffer
andCostEstimate
- When sending invalid AVA-projects via the API where elements of type
IElementDto
contain an invalidElementTypeDiscriminator
value, an error message is sent as response with the offending value
v1.4.6:
- The Dangl.GAEB module was updated to make importing of malformed GAEB XML files more robust
v1.4.5:
- GAEB exports now contain a
GAEBInfo.ProgName
to indicate their origin as coming from AVACloud
v1.4.3:
- Update dependencies for latest bugfixes and performance improvements
v1.4.3:
- Update dependencies. GAEB files which have no item numbers and no item number schema defined should now get automatically generated item numbers
v1.4.2:
- Update dependencies
v1.4.1:
- Fix some issues where the new ASP.NET Core 2.2 InProcess hosting model would sometimes fail to load the OS-dependant
System.Drawing.Common.dll
in Azure App Service environments - Fixed issue where the Swagger definition contained duplicated enum values
v1.4.0:
- The Dangl.AVA & Dangl.GAEB dependencies were updated to the latest version
v2.0.0
- The server side was upgrade to ASP.NET Core 2.2
v1.3.3:
- Update of dependencies to fix bugs related to empty tables in some GAEB XML Html long texts
v1.3.1:
- Exports to GAEB 90 no longer include the branding comment, since this caused problems with some importing applications
- The
DestinationGaebType
for GAEB 2000 Commerce was renamed fromGAEB2000Commerce
toGaeb2000Commerce
. The old value may still be used by clients
v1.3.0:
- The public and internal Swagger endpoints were unified to a single one
- The public client does now also include all operations with AVA models. It uses generated models instead of the Dangl.AVA.IO package
v1.2.4:
- Bugfix: The .NET client had a bug around JSON deserialization of OAuth2 token responses
v1.2.3:
- Update Dangl.AVA dependencies for latest bugfixes
v1.2.2:
- The Admin Ui Dashboard can now optionally store and display options that were used during conversion processes
v1.2.1:
- Update Dangl.AVA.Converter.Excel and Dangl.Oenorm for latest bugfixes and improvements
v1.2.0:
- Dangl.AVA models were updated to indicate properties that are
readonly
. This should make integration with clients more straightforward
v1.1.2:
- Bugfix where non-schema compliant GAEB XML files with invalid decimal values could not be read
v1.1.1:
- Bugfix where GAEB 90 exports with very high absolute values for deductions failed
v1.1.0
- The API now accepts Austrian OENorm 2063 files as input
v1.0.13:
- Update Dangl.AVA dependencies for latest bugfixes
v1.0.12:
- The app is now published with all dependencies. This results in slightly larger deployment sizes, but makes hosts no longer require to have the correct .NET Core runtime installed
v1.0.11:
- Update Dangl.GAEB & Dangl.AVA dependencies for latest bugfixes
- Prettify Admin UI Dashboard
- Update to ASP.NET Core 2.1.3
v1.0.10:
- Update Admin UI Dashboard to include more statistics
v1.0.9:
- Update dependencies to be able to read
NoteText
elements from GAEB 2000 commerce exchange phase files
v1.0.8:
- All
DateTime
Json response objects have now their timezone attached
v1.0.5:
- Added AVACloud Admin UI Dashboard to monitor service health and metrics
- Added option to normalize file names, so that when files are converted with their full path & filename, only the filename portion is used for the result
v1.0.4:
- Add support for
GAEBXML_V3_1
destination type
v1.0.3:
- When supplying an invalid
culture
to endpoints returning Excel, the culture will now default toen
v1.0.2:
- Fix Swagger discriminator propeties not being correctly camelCased in the Swagger definitions
v1.0.1
- Fix Swagger schema being set to only
http
when first hit by Azure App Service warmup via non-secure http route
v1.0.0
- Initial Release