CapabilityData & PersistenceNode.js, read from its artifacts

Attachments

Storing a file somebody uploaded next to the record it belongs to, and getting it back out — where the bytes actually live, who may read them, and what the UI shows while they are being scanned.

Showing artifacts, examples and content with confirmed Node.js applicability. View All CAP

Overview

SAP SHIPS
@cap-js/attachments

Adds the Attachments aspect, Fiori annotations and file handling to CAP Node.js. Database storage is used locally; productive use requires an Object Store binding. Fiori elements requires draft enablement, while non-draft clients send separate metadata and content requests.

Sourcecap-js/attachments — READMEchecked
@cap-js/sdm

Stores CAP Node.js attachments in a non-versioned SAP Document Management repository, including custom properties and link attachments. Draft and non-draft entities are documented.

Sourcecap-js/sdm — READMEchecked
@sap/cds

Serves an element annotated @Core.MediaType as an OData media resource, stored in the database as a LargeBinary or redirected to an external URL, streamed to and from the client.

SourceServing Media Data — capirechecked

A Node.js coverage assessment has not been written. View all flavors

THE COMMUNITY ADDS
cap-attachments-plus

Adds an Attachments aspect and Fiori elements upload facet. Cloud attachment content is stored in the application owner’s AWS, Azure or GCP account using credentials from a BTP destination; local development can store content in the database.

Sourceplus — READMEchecked
@tklein1801/cap-js-attachments

Uses an Attachments composition on a draft-enabled entity, with local database storage or an SAP Object Store bucket. Shared-store attachment URLs carry a tenant prefix.

sap-cap-sdm-plugin

Maps CDS entity fields to CMIS properties with @Sdm.Entity and @Sdm.Field. It exposes CMIS and repository-administration clients for operations beyond those annotations.

A Node.js coverage assessment has not been written. View all flavors

Artifacts7

7 of 7 artifacts
ArtifactSignals
CDS plugins5
@cap-js/attachmentsCAP Node.js attachments with database, S3, Azure or GCP storage
Signals
none
@cap-js/sdmCAP attachments stored in an SAP Document Management repository
Signals
Functional boundary
@tklein1801/cap-js-attachmentsCAP Node.js attachments plugin with Object Store and malware scanning
Signals
none
cap-attachments-plusCAP Node.js attachments plugin with database or cloud storage
Signals
none
sap-cap-sdm-pluginCAP Node.js plugin mapping CDS entities to SAP Document Management
Signals
Archived+1
Packages1
@sap/cdsCAP Node.js runtime
Signals
none
Services1
SAP Document Management service, integration optionAPIs and a UI5 component for document management in apps
Signals
none

Tasks5Beta

CoversCovers, under conditionsStated not supportedAssessed, not knownNot assessed
Keep attachment content out of the application database2 under conditions, 1 not known

A deployed CAP application keeps uploaded file content in an object store or a document repository, and keeps only the metadata and a reference in its own database.

Choosing between AWS, Azure and Google, and entitlement to any of them, are project questions and are not assessed. Moving content already written to the database is not covered by any source read here. Nothing here establishes that a deployment was run.

Covers, under conditions@cap-js/attachmentsWith a storage target configured, the content goes to that target and the database keeps the reference and the metadata. The README states that productive use requires a valid object store binding.

Conditions: A valid SAP Object Store binding exists for the deployed application.

Remaining work: Provision and bind the Object Store service and set the storage target kind per profile. Without the binding the productive path is the one the README rules out, not a fallback to the database.

Open artifact →

Covers, under conditions@cap-js/sdmPuts the documents in an SAP Document Management repository rather than a bucket, for the case where the files belong in a repository the business already keeps.

Conditions: An SAP Document Management integration option service instance and key exist. A repository is onboarded with those credentials and its id is configured for the deployment.

Remaining work: Create the instance and key, onboard the repository and configure its id in the deployment descriptor before anything is stored.

Open artifact →

Assessed, not knowncap-attachments-plusThe graph records a claim dated 2026-09-17 that this plugin stores cloud content in the application owner's own AWS, Azure or GCP account through a BTP destination, which would be the one option here that keeps the bytes outside SAP's service. That claim has not been re-established.

Remaining work: Retrieve the npm README again. https://www.npmjs.com/package/cap-attachments-plus returned HTTP 403 on 2026-09-19 and again on 2026-09-20, and the package has no public repository to read instead.

Open artifact →

Keep each subscriber's attachments apart in a multitenant CAP application1 covers, 2 under conditions

Each subscriber of a multitenant CAP application uploads and reads only its own attachments, and that tenant's content is removed when it unsubscribes.

Tenant isolation in the database, and the subscription mechanics themselves, belong to multitenancy and are assessed there. Whether a subaccount is entitled to one Object Store instance per tenant is a project question. Nothing here establishes that a subscription or an unsubscription was observed.

Covers@cap-js/sdmSeparates tenants by repository rather than by key prefix: one is provisioned when a tenant subscribes and cleaned up when it unsubscribes.

Remaining work: Deploy the onboarding and offboarding code the README shows. The lifecycle is automated once that code is in place, not before.

Open artifact →

Covers, under conditions@cap-js/attachmentsIn separate mode, the default since 2.1.0, the plugin creates an object store instance for each tenant when it subscribes and deletes it when it unsubscribes. A shared instance can be configured instead, and there the README states that attachment URLs carry the tenant id and says nothing about removing a tenant's content.

Conditions: Separate mode is in use, which is the mode the README states per-tenant provisioning and deletion for, and the default from version 2.1.0. @cap-js/attachments is in the dependencies of both the application and the mtx sidecar.

Remaining work: Add the plugin to both package.json files, choose separate or shared instances before the first subscription, and bind the shared instance to the mtx module when shared is chosen. On the shared instance the removal half of this outcome is not stated.

Open artifact →

Covers, under conditions@tklein1801/cap-js-attachmentsStates readiness for multitenancy on a shared object store instance, with attachment URLs prefixed by the tenant id. It documents the prefixing and not the provisioning.

Conditions: A shared SAP Object Store instance with a bucket already exists and is reachable.

Remaining work: Provide the shared instance and its bucket. The README requires one to exist rather than creating it per tenant.

Open artifact →

Keep version history for an attached document1 covers, 2 no

A document attached to a business record keeps its earlier versions, so a reader can see what the file was before it was replaced.

Change tracking of the record's own fields is a different concern. Whether a customer is entitled to SAP Document Management is a project question. Versioning inside a bucket, configured on the storage service rather than by the application, is outside what these packages document. Nothing here establishes that any alternative route was built or run.

CoversSAP Document Management service, integration optionThe service under both plugins names versioning among the document management capabilities it offers, and offers its APIs for an application to build its own document management layer on.

Remaining work: Build the record association and the upload path against those APIs. Neither CAP plugin covers a versioned repository, so this route leaves the Attachments aspect behind.

Open artifact →

Stated not supported@cap-js/attachmentsThe README addresses replacement rather than versions. By default the Attachments aspect marks the content non-updatable, so an upload to an attachment that already has content is rejected with 409; with that annotation overridden the upload overwrites the existing content. Neither path produces a second version, and the README names no place where the earlier file survives.

Remaining work: Keep the earlier file somewhere other than the attachment: a second record, or the document management APIs. Whether the configured storage target retains a previous object is a question for that service and is not answered here.

Open artifact →

Stated not supported@cap-js/sdmThe plugin rules out versioned repositories, so the repository that would hold the versions is the one it cannot be pointed at.

Remaining work: Either drop the version requirement, or reach the document management APIs from the application without this plugin in the path.

Open artifact →

Scan an uploaded attachment before anyone can download it1 covers, 2 under conditions

A file a user uploads is scanned for malware, and a file that was never scanned does not reach a reader carrying the same status as one that was.

How well a scanner detects anything is not assessed. What the application does with an infected file, and the wording it shows a user, are its own handling. Nothing here establishes that a scan was observed running.

Covers@cap-js/attachmentsWith scanning left enabled and no scanner available, the upload fails, so the file does not get stored unscanned. Download is tied to the status: the README states that an attachment cannot be downloaded unless its status is Clean.

Remaining work: Bind the SAP Malware Scanning service, or disable scanning deliberately per profile. The plugin states the two outcomes; picking between them is the application's decision.

Open artifact →

Covers, under conditions@cap-js/sdmScanning happens at the SAP Document Management repository rather than in the plugin, on repositories onboarded with virus scanning. With it switched on, uploads above 400 MB are rejected with HTTP 409 before any data is streamed, and the same README's Known Restrictions state a 100 MB maximum for attachments.

Conditions: The repository is onboarded with virus scanning enabled. Files above 400 MB are rejected rather than scanned when virus scanning is on.

Remaining work: Enable virus scanning when the repository is onboarded, decide what the application does with a file the repository refuses on size, and establish which of the two stated size figures applies to an upload.

Open artifact →

Covers, under conditions@tklein1801/cap-js-attachmentsAn independent plugin that states scanning on for every profile except development, so the developer machine is the one place a file goes unscanned. The scanner it reaches is the SAP Malware Scanning service, bound as malware-scanner.

Conditions: An SAP Malware Scanning service instance the application can access already exists. That instance is bound with cds bind malware-scanner.

Remaining work: Provide the service instance and bind it. The README requires one to exist and creates nothing.

Open artifact →

Upload an attachment from a client that is not SAP Fiori elements2 under conditions

A caller that is not an SAP Fiori elements UI, such as a test client, a custom front end or another service, creates an attachment record against an existing business record and uploads its content.

The upload control and the client code that drives it are a UI question and are not assessed here. Who may read the file afterwards belongs to authorization. Nothing here establishes that any of these paths was run end to end.

Covers, under conditions@cap-js/attachmentsDraft enablement is stated as an SAP Fiori elements requirement rather than a plugin one. A caller outside Fiori elements creates the attachment metadata and uploads the content in two separate requests it writes itself.

Conditions: The client is not SAP Fiori elements, in which case draft enablement is not required. The caller issues metadata creation and content upload as separate HTTP requests.

Remaining work: Write and maintain the two-request sequence in the calling client. The README points at tests/non-draft-request.http as the example and ships no client.

Open artifact →

Covers, under conditions@cap-js/sdmStates full support for attachments on non-draft, active entities, with the plugin handling create, update and delete on the attachment entity directly rather than through a draft.

Conditions: The entity is not annotated with @odata.draft.enabled. An SAP Document Management integration option service instance and key exist, a repository is onboarded and its id is configured for the deployment.

Remaining work: Model the entity without the draft annotation, then write the client against the active entity. The README rules the annotation out for non-draft attachment support and states nothing about what a caller has to send when the annotation is kept.

Open artifact →

Task answers1

Connected task assessments · source-read · includes assessments awaiting editorial review

Attach a document to a business record and retrieve it later

CAP Node.js

Awaiting editorial review · assessed · no Atlas runtime testing

  • cap-attachments-plus · Independent · implementation

    Attachment aspect and upload/download UI; own-account AWS, Azure or GCP storage through a BTP destination.

  • @cap-js/attachments · SAP official · implementation

    Attachment handling through the official CAP Node.js plugin.

  • @sap/cds · SAP official · foundation

    Documented media streaming foundation rather than a complete attachment user flow.

cap-attachments-plus · conditional

Attachment aspect and upload/download UI; own-account AWS, Azure or GCP storage through a BTP destination.

Conditions: Fiori elements uses a draft-enabled entity.; Cloud storage requires account credentials and a Destination service binding.

Remaining work: Configure storage, authorization and scanning for the application; the development scanner can be mocked.

cap-attachments-plus npm README, latest 1.0.29 at retrieval · checked 2026-10-06

@cap-js/attachments · conditional

Attachment handling through the official CAP Node.js plugin.

Conditions: Fiori elements requires draft enablement.; Productive use requires a valid Object Store binding.

Remaining work: Configure storage and scanning and establish business-record authorization.

@cap-js/attachments README · checked 2026-10-06

@sap/cds · conditional

Documented media streaming foundation rather than a complete attachment user flow.

Conditions: Model a media element and its MIME type.

Remaining work: Implement record association, access control and the upload interface.

CAP — Serving Media Data · checked 2026-10-06

Prototype assessment awaiting review · assessed . No Atlas runtime testing.

Related knowledge

Serving Media Data

Official reference for the streaming foundation.

Why included: Reading explains the documented implementation contribution. · SAP CAP documentation

Attachments plugin guide

Setup and storage requirements for the official plugin.

Why included: Reading explains the documented implementation contribution. · cap-js

cap-attachments-plus guide

Maintainer documentation for attachment handling and own-account storage.

Why included: Reading explains the documented implementation contribution. · npm

CAP Framework (Cloud Application Programming Model)

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: The CAP framework subject is broader than the Node.js runtime. This is a route to context, not package identity or compatibility. · SAP Developers

Why this assessment is relevant
  1. Attach a document to a business record and retrieve it later → CAP Node.js
Relationships and evidence (15)
  • cap-attachments-plus → provides → Attachments

    Adds an Attachments aspect and Fiori elements upload facet. Cloud attachment content is stored in the application owner’s AWS, Azure or GCP account using credentials from a BTP destination; local development can store content in the database.

    Basis: atlas-record

    plus — README · checked 2026-09-17Credentials come from a **BTP destination** you create yourself

    plus — README · checked 2026-09-17For scenarios where the entity is not draft-enabled, for example [`tests/non-draft-request.http`](./tests/non-draft-request.http), separate HTTP requests for metadata creation and asset uploading need to be performed manually.

    plus — README · checked 2026-09-17The plugin's own `[development]` profile default already wires up a **mocked** scanner (`kind: "malwareScanner-mocked"`) that always reports `Clean` without calling any real service.

    plus — README · checked 2026-09-17Each cloud provider reads its configuration directly from a BTP destination, pointing at your own AWS, Azure or GCP account rather than an SAP Object Store service instance.

  • @cap-js/attachments → provides → Attachments

    Adds the Attachments aspect, Fiori annotations and file handling to CAP Node.js. Database storage is used locally; productive use requires an Object Store binding. Fiori elements requires draft enablement, while non-draft clients send separate metadata and content requests.

    Basis: atlas-record

    cap-js/attachments — README · checked 2026-09-17- **AWS S3** (`kind: "s3"`) - **Azure Blob Storage** (`kind: "azure"`) - **GCP Cloud Storage** (`kind: "gcp"`)

    cap-js/attachments — README · checked 2026-09-17For scenarios where the entity is not draft-enabled, for example [`tests/non-draft-request.http`](./tests/non-draft-request.http), separate HTTP requests for metadata creation and asset uploading need to be performed manually.

    cap-js/attachments — README · checked 2026-09-17If there is no malware scanner available and the scanner is not disabled, then the upload will fail.

    cap-js/attachments — README · checked 2026-09-17For productive use, a valid object store binding is required, see [Object Stores](#object-stores) and [Storage Targets](#storage-targets).

    cap-js/attachments — README · checked 2026-09-17If you are not using SAP Fiori elements, draft enablement is not required.

  • @sap/cds → provides → Attachments

    Serves an element annotated @Core.MediaType as an OData media resource, stored in the database as a LargeBinary or redirected to an external URL, streamed to and from the client.

    Basis: atlas-record

    Serving Media Data — capire · checked 2026-09-27CAP provides out-of-the-box support for serving media and other binary data. Media data can be stored either directly in the database or in an external repository, and can be streamed to and from clients.

    Serving Media Data — capire · checked 2026-09-27The media data is streamed automatically.

  • Attach a document to a business record and retrieve it later → associatedWith → Attachments

    Discover the shared task through the Attachments concern.

    Basis: pilot-assessment

  • Serving Media Data → explains → @sap/cds

    Reading explains the documented implementation contribution.

    Basis: pilot-assessment

    CAP — Serving Media Data · checked 2026-10-06The media data is streamed automatically.

  • Attachments plugin guide → explains → @cap-js/attachments

    Reading explains the documented implementation contribution.

    Basis: pilot-assessment

    @cap-js/attachments README · checked 2026-10-06For productive use, a valid object store binding is required

  • cap-attachments-plus guide → explains → cap-attachments-plus

    Reading explains the documented implementation contribution.

    Basis: pilot-assessment

    cap-attachments-plus npm README, latest 1.0.29 at retrieval · checked 2026-10-06Credentials come from a **BTP destination** you create yourself

  • CAP Framework (Cloud Application Programming Model) → contextualizes → @sap/cds

    The CAP framework subject is broader than the Node.js runtime. This is a route to context, not package identity or compatibility.

    Basis: pilot-mapping

    Mapping: about · pending-human-review · authored from cited sources · checked 2026-10-06

    CAP — Serving Media Data · checked 2026-10-06The media data is streamed automatically.

  • CAP Node.js → assesses → Attach a document to a business record and retrieve it later

    One shared outcome, one scoped assessment.

    Basis: pilot-assessment

  • cap-attachments-plus → contributesTo → CAP Node.js

    Attachment aspect and upload/download UI; own-account AWS, Azure or GCP storage through a BTP destination.

    Basis: pilot-assessment

    cap-attachments-plus npm README, latest 1.0.29 at retrieval · checked 2026-10-06Credentials come from a **BTP destination** you create yourself

  • @cap-js/attachments → contributesTo → CAP Node.js

    Attachment handling through the official CAP Node.js plugin.

    Basis: pilot-assessment

    @cap-js/attachments README · checked 2026-10-06For productive use, a valid object store binding is required

  • @sap/cds → contributesTo → CAP Node.js

    Documented media streaming foundation rather than a complete attachment user flow.

    Basis: pilot-assessment

    CAP — Serving Media Data · checked 2026-10-06The media data is streamed automatically.

  • CAP Node.js → reading → Serving Media Data

    Curated supporting reading for this assessment.

    Basis: pilot-assessment

    CAP — Serving Media Data · checked 2026-10-06The media data is streamed automatically.

  • CAP Node.js → reading → Attachments plugin guide

    Curated supporting reading for this assessment.

    Basis: pilot-assessment

    @cap-js/attachments README · checked 2026-10-06For productive use, a valid object store binding is required

  • CAP Node.js → reading → cap-attachments-plus guide

    Curated supporting reading for this assessment.

    Basis: pilot-assessment

    cap-attachments-plus npm README, latest 1.0.29 at retrieval · checked 2026-10-06Credentials come from a **BTP destination** you create yourself

Gaps, source snapshot and retrieval limits
  • This assessment does not establish repository versioning, retention policy or tenant isolation for a chosen deployment.
  • Independent origin follows the existing atlas artifact classification; it is not a license or quality rating.
  • Retrieval uses at most four typed steps within a bounded source index. Source relationships do not establish compatibility.

Developers snapshot checked 2026-10-05 · 33 indexed records from a 9,023-node source snapshot. This is a bounded retrieval view; absence is not evidence that no solution exists. Source relationships and proximity do not establish runtime compatibility.

Mapping version: connected-tasks-2026-10-06-v4+mcp-records-b256b58cfb844590. Task and mapping evidence remain separate from implementation evidence.

Drafted with AI

Content6

Group by
Piece, what it offers
Major updates to the Attachments plugin – multi-cloud support, malware scanning and more
SAP Community, rupamaity, BlogThe reasoningA recipeRunnable code
Version drift
Uploading attachment with cap-js/attachment plugins but via External App/Postman
SAP Community, chrisobar, BlogThe reasoning
Use SAP Document Management Service Plugin In CAP NODEJS Step by Step Guidance
SAP Community, Jacky_Liu1, BlogThe reasoningA recipeRunnable code
Show 3 more
Consume SAP Document Management using @cap-js/sdm plugin
SAP Community, rashmiangadi, BlogThe reasoningA recipeRunnable code
Working with the Attachment plugin - Cloud Application Programming
SAP Community, Arun Krishnamoorthy, BlogThe reasoningA recipeRunnable code
New majors
Presenting sap-cap-sdm-plugin: Effortless Integration Between CAP (Node.js) and DMS
SAP Community, Vinícius Barrionuevo, BlogThe reasoningRunnable code
Archived
Major updates to the Attachments plugin – multi-cloud support, malware scanning and more
SAP Community, rupamaity, BlogThe reasoningA recipeRunnable code
Version drift
Uploading attachment with cap-js/attachment plugins but via External App/Postman
SAP Community, chrisobar, BlogThe reasoning
Working with the Attachment plugin - Cloud Application Programming
SAP Community, Arun Krishnamoorthy, BlogThe reasoningA recipeRunnable code
New majors
Use SAP Document Management Service Plugin In CAP NODEJS Step by Step Guidance
SAP Community, Jacky_Liu1, BlogThe reasoningA recipeRunnable code
Consume SAP Document Management using @cap-js/sdm plugin
SAP Community, rashmiangadi, BlogThe reasoningA recipeRunnable code
Presenting sap-cap-sdm-plugin: Effortless Integration Between CAP (Node.js) and DMS
SAP Community, Vinícius Barrionuevo, BlogThe reasoningRunnable code
Archived

Seen working1

ArtifactSignals
Samples1
attachment-reuse-controls-sampleFiori Elements page embedding upload controls on @cap-js/attachments
No license

Details

Connected knowledge — wider context1

Source connections explain where this sits. Implementation claims remain in their exact task assessment.

Attach a document to a business record and retrieve it later · CAP Node.js

Prototype assessment awaiting review · assessed . No Atlas runtime testing.

Related knowledge

Serving Media Data

Official reference for the streaming foundation.

Why included: Reading explains the documented implementation contribution. · SAP CAP documentation

Attachments plugin guide

Setup and storage requirements for the official plugin.

Why included: Reading explains the documented implementation contribution. · cap-js

cap-attachments-plus guide

Maintainer documentation for attachment handling and own-account storage.

Why included: Reading explains the documented implementation contribution. · npm

CAP Framework (Cloud Application Programming Model)

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: The CAP framework subject is broader than the Node.js runtime. This is a route to context, not package identity or compatibility. · SAP Developers

Why this assessment is relevant
  1. Attach a document to a business record and retrieve it later → CAP Node.js
Relationships and evidence (15)
  • cap-attachments-plus → provides → Attachments

    Adds an Attachments aspect and Fiori elements upload facet. Cloud attachment content is stored in the application owner’s AWS, Azure or GCP account using credentials from a BTP destination; local development can store content in the database.

    Basis: atlas-record

    plus — README · checked 2026-09-17Credentials come from a **BTP destination** you create yourself

    plus — README · checked 2026-09-17For scenarios where the entity is not draft-enabled, for example [`tests/non-draft-request.http`](./tests/non-draft-request.http), separate HTTP requests for metadata creation and asset uploading need to be performed manually.

    plus — README · checked 2026-09-17The plugin's own `[development]` profile default already wires up a **mocked** scanner (`kind: "malwareScanner-mocked"`) that always reports `Clean` without calling any real service.

    plus — README · checked 2026-09-17Each cloud provider reads its configuration directly from a BTP destination, pointing at your own AWS, Azure or GCP account rather than an SAP Object Store service instance.

  • @cap-js/attachments → provides → Attachments

    Adds the Attachments aspect, Fiori annotations and file handling to CAP Node.js. Database storage is used locally; productive use requires an Object Store binding. Fiori elements requires draft enablement, while non-draft clients send separate metadata and content requests.

    Basis: atlas-record

    cap-js/attachments — README · checked 2026-09-17- **AWS S3** (`kind: "s3"`) - **Azure Blob Storage** (`kind: "azure"`) - **GCP Cloud Storage** (`kind: "gcp"`)

    cap-js/attachments — README · checked 2026-09-17For scenarios where the entity is not draft-enabled, for example [`tests/non-draft-request.http`](./tests/non-draft-request.http), separate HTTP requests for metadata creation and asset uploading need to be performed manually.

    cap-js/attachments — README · checked 2026-09-17If there is no malware scanner available and the scanner is not disabled, then the upload will fail.

    cap-js/attachments — README · checked 2026-09-17For productive use, a valid object store binding is required, see [Object Stores](#object-stores) and [Storage Targets](#storage-targets).

    cap-js/attachments — README · checked 2026-09-17If you are not using SAP Fiori elements, draft enablement is not required.

  • @sap/cds → provides → Attachments

    Serves an element annotated @Core.MediaType as an OData media resource, stored in the database as a LargeBinary or redirected to an external URL, streamed to and from the client.

    Basis: atlas-record

    Serving Media Data — capire · checked 2026-09-27CAP provides out-of-the-box support for serving media and other binary data. Media data can be stored either directly in the database or in an external repository, and can be streamed to and from clients.

    Serving Media Data — capire · checked 2026-09-27The media data is streamed automatically.

  • Attach a document to a business record and retrieve it later → associatedWith → Attachments

    Discover the shared task through the Attachments concern.

    Basis: pilot-assessment

  • Serving Media Data → explains → @sap/cds

    Reading explains the documented implementation contribution.

    Basis: pilot-assessment

    CAP — Serving Media Data · checked 2026-10-06The media data is streamed automatically.

  • Attachments plugin guide → explains → @cap-js/attachments

    Reading explains the documented implementation contribution.

    Basis: pilot-assessment

    @cap-js/attachments README · checked 2026-10-06For productive use, a valid object store binding is required

  • cap-attachments-plus guide → explains → cap-attachments-plus

    Reading explains the documented implementation contribution.

    Basis: pilot-assessment

    cap-attachments-plus npm README, latest 1.0.29 at retrieval · checked 2026-10-06Credentials come from a **BTP destination** you create yourself

  • CAP Framework (Cloud Application Programming Model) → contextualizes → @sap/cds

    The CAP framework subject is broader than the Node.js runtime. This is a route to context, not package identity or compatibility.

    Basis: pilot-mapping

    Mapping: about · pending-human-review · authored from cited sources · checked 2026-10-06

    CAP — Serving Media Data · checked 2026-10-06The media data is streamed automatically.

  • CAP Node.js → assesses → Attach a document to a business record and retrieve it later

    One shared outcome, one scoped assessment.

    Basis: pilot-assessment

  • cap-attachments-plus → contributesTo → CAP Node.js

    Attachment aspect and upload/download UI; own-account AWS, Azure or GCP storage through a BTP destination.

    Basis: pilot-assessment

    cap-attachments-plus npm README, latest 1.0.29 at retrieval · checked 2026-10-06Credentials come from a **BTP destination** you create yourself

  • @cap-js/attachments → contributesTo → CAP Node.js

    Attachment handling through the official CAP Node.js plugin.

    Basis: pilot-assessment

    @cap-js/attachments README · checked 2026-10-06For productive use, a valid object store binding is required

  • @sap/cds → contributesTo → CAP Node.js

    Documented media streaming foundation rather than a complete attachment user flow.

    Basis: pilot-assessment

    CAP — Serving Media Data · checked 2026-10-06The media data is streamed automatically.

  • CAP Node.js → reading → Serving Media Data

    Curated supporting reading for this assessment.

    Basis: pilot-assessment

    CAP — Serving Media Data · checked 2026-10-06The media data is streamed automatically.

  • CAP Node.js → reading → Attachments plugin guide

    Curated supporting reading for this assessment.

    Basis: pilot-assessment

    @cap-js/attachments README · checked 2026-10-06For productive use, a valid object store binding is required

  • CAP Node.js → reading → cap-attachments-plus guide

    Curated supporting reading for this assessment.

    Basis: pilot-assessment

    cap-attachments-plus npm README, latest 1.0.29 at retrieval · checked 2026-10-06Credentials come from a **BTP destination** you create yourself

Gaps, source snapshot and retrieval limits
  • This assessment does not establish repository versioning, retention policy or tenant isolation for a chosen deployment.
  • Independent origin follows the existing atlas artifact classification; it is not a license or quality rating.
  • Retrieval uses at most four typed steps within a bounded source index. Source relationships do not establish compatibility.

Developers snapshot checked 2026-10-05 · 33 indexed records from a 9,023-node source snapshot. This is a bounded retrieval view; absence is not evidence that no solution exists. Source relationships and proximity do not establish runtime compatibility.

Mapping version: connected-tasks-2026-10-06-v4+mcp-records-b256b58cfb844590. Task and mapping evidence remain separate from implementation evidence.

Coverage
statecore and community, CAP, Node.js, derived
also inUI5, ABAP, BTP/BAIP
Comparison properties4

These are the questions used to compare what the artifacts do. Values come from their documentation and may apply to a particular ecosystem or runtime. Each recorded value in the comparison opens its statement and sources.

Storage targetUpload flowScan behaviourVersioned repositories
For your agent