All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
The format is based on Keep a Changelog.
- Added top-level
Attachmentsaspect to allow usage withoutsap.attachmentsnamespace (#806), i.e.,using {Attachments} from 'com.sap.cds/cds-feature-attachments'. - Extract
fileNameandmimeTypefrom HTTP headers (Content-Disposition,Content-Type,slug) when not provided in the request payload (#804)
- Added shared-bucket multitenancy support for OSS attachments (#767)
- Added integration tests for multitenancy scenarios (#782)
- Fixed rescan-on-download being triggered when no malware scanner is bound (#783)
- Added
ScanStatesentity with criticality for enhanced malware scan status display (#776)
- Fixed
DRAFT_NEWcrash on non-attachment compositions (#780) - Fixed malware scan retriggering on draft activation without content changes (#779)
- Fixed code smells (#775)
- Added support to restrict allowed MIME types via
@Core.AcceptableMediaTypesannotation (#732) - Added malware scan check upon attachment download (#762)
- Added mTLS authentication support for Malware Scanning Service (#765)
- Added
isSystemUsertoDeletionUserInfo(#769)
- Optimized MIME type validation to only run when
@Core.AcceptableMediaTypesannotation exists (#761)
- Fixed malware scan status stuck at
Scanningafter draft activation (#771)
- Fixed @Validation.Maximum error message not showing in consuming projects due to messages.properties being overwritten instead of merged. Error messages are now temporary self-contained and no longer rely on a resource bundle.
- Fixed Validation.Maximum annotation not triggering on first upload of an attachment
- Changed default max file size value to only be enforced when using the malware scanner
- Added @Validation.Maximum Annotation for setting max file size (default: 400MB)
- Included the filestorage(fs) module in the deployment process for dev purposes
- fix "no proper error message when exceeding char limit on note field" (also: default char limit for note is now 5000)
- DraftCancel not registering attachments as compositions
- fix overflowing filename
- Sample: Replaced cap-notebook with a bookshop sample
- "Attempted read on closed stream" error for usage via api in oss
- Make up__ID field invisible in UI
- Several version bumps
- Deletion error when having "fiori": {"draft_messages": true } (#526)
- Several version bumps
- Apply GoogleJavaFormat style GOOGLE and enforce that for PRs (#551)
- Fixed an issue where the Malware Scanning Service is not triggered after uploading an Attachment, if the target storage is other than the default DB storage. (#557)
- Support for Object Stores (AWS, Azure and Google) (#481)
- Rename folder 'examples' to 'storage-targets' and add section about this in the README.md (#519)
- Use spotless plugin to ensure correct license header (#515)
- Several version bumps
- Run integration tests also with CAP Java 4.x and @sap/cds-dk@^9 to ensure compatibility with latest available versions.
- Bumped minimum required version of CAP Java to 3.10.3.
- Avoid the generation of POJOs for
cds.outboxandsap.commoncontexts. - Replaced usage of generic interface
CdsDatawith specific interfaceAttachmentsto improve type safety.
- Avoid unnessary malware scans of attachments.
- Introduced DraftUtils to handle draft related functionality in a single place.
- Migrated deployment of
cds-feature-attachmentsfrom OSS to Central Portal.
- Simplified code base by removing classes with only a few lines of code that can be moved.
- chore: Tidy up several pom.xml files to make them more manageable
- Improved initialization of Malware Scanner Service.
- Register draft related event handlers on DraftService, if there is at least one DraftService instance available.
- Fixed a potentially thrown NullPointerExcpetion when adding cds-feature-attachments to a CAP Java application and the persistent outbox is not available.
- Translations for all model texts.
- Removal of unneeded transitive dependencies to avoid usage and further propagation.
- Replaced the dependency on
com.sap.cds:cds-integration-cloud-sdkwithcom.sap.cloud.sdk.cloudplatform:cloudplatform-coreto use the Cloud SDK directly.
- Added support to configure the HTTP client pool to Malware Scanning Service. Supported configuration properties are:
cds.attachments.malwareScanner.http.timeout: The HTTP request timeout in seconds, defaults to 120scds.attachments.malwareScanner.http.maxConnections: The max. number of parallel HTTP connections to Malware Scanning Service, defaults to 20 connections
- Simplified logging markers
- Improved Javadoc
- Updated some dependencies to latest versions.
- Fixed a bug that caused malware scanning to fail, if the content was stored in a HANA DB.
- Added user info to deletion context.
- Added HTML CSS annotations to specify column width.
- Updated several dependencies and Maven build plugins to latest versions.
- Fixed a problem with missing fileName when creating an attachment.
- Fixed a problem with deleting attachments on BTP with HANA.
- Fixed a problem with Malware scanning in multitenancy applications.
- First public release on https://repo1.maven.org/maven2/com/sap/cds/
- added
@odata.etagannotation for fieldmodifiedAtto the Attachment entity to enable optimistic concurrency control - added pessimistic locking for the attachment entity updates to prevent concurrent updates on the same attachment
- CAP Java version was updated to 2.9.1
- Fixed a bug in the annotation for the status field in the MediaData entity which causes that no text was shown in the UI
- Initial version of the project
- Data consumption model for attachments to be reusable for consumers
- New service: Attachment Service to handle attachments events
- Default handler for attachment service for storage attachments in the primary database
- Handlers for application and draft services which calls the attachment service
- Call of malware scanner if bound to consuming services
- Spring boot test for attachment service and handlers