{"ref":"artifact:spreadsheetimporter-cds-spreadsheetimporter-plugin","page":"/artifacts/spreadsheetimporter-cds-spreadsheetimporter-plugin","json":"/artifacts/spreadsheetimporter-cds-spreadsheetimporter-plugin.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"spreadsheetimporter-cds-spreadsheetimporter-plugin","name":"cds-spreadsheetimporter-plugin","artifact_type":"cds-plugin","ecosystem":"cap","domain":"data-and-persistence","origin_ring":"community-org","description":{"one_line":"A CAP plugin that adds an ImporterService accepting an uploaded Excel file, parses it on the server and writes its rows into the CDS entity named in the URL.","short":"Spreadsheet upload into a CDS entity, parsed on the server","what_it_solves":"Adds an ImporterService to a CAP project whose Spreadsheet entity accepts an Excel file by PUT at /odata/v4/importer/Spreadsheet(entity='...')/content, parses it in the service and writes the rows into the entity named in the URL. The whole file goes to the backend rather than being read in the browser, which the documentation gives as the reason to reach for it on large files. By default every entity is a valid target; annotating any service entity with @spreadsheetimporter.enabled turns that into an allow-list and every other entity is refused with 403 SPREADSHEET_IMPORT_ENTITY_NOT_ENABLED, and annotating a projection also enables the persistence entity behind it. That annotation chooses targets and nothing else — who may upload is still CAP's own @requires and @restrict on the importer service. It pairs with the [ui5-cc-spreadsheetimporter](https://github.com/spreadsheetimporter/ui5-cc-spreadsheetimporter) UI5 component through its directUploadConfig option, and a plain FileUploader posting to the same endpoint works as well."},"links":{"npm":"https://www.npmjs.com/package/cds-spreadsheetimporter-plugin","repo":"https://github.com/spreadsheetimporter/cds-spreadsheetimporter-plugin","docs":"https://docs.spreadsheet-importer.com/ui5/pages/CdsPlugin/"},"identity":{"author":"Wouter Lemaire","license":"ISC"},"maintainers":["actor:lemaiwo","actor:marianfoo","actor:spreadsheetimporter"],"compat":{"runtimes":["node"],"cds_range":">=7"},"provenance":{"discovered_via":[{"source":"source:discover","channel":"npm"}],"first_seen":"2026-09-18"},"provides":[{"capability":"capability:data-import-export","what_it_does":"Server-side spreadsheet import for CAP: an ImporterService endpoint takes an uploaded Excel file by PUT and writes its rows into the CDS entity named in the URL, with @spreadsheetimporter.enabled deciding which entities may be targeted at all.","sources":[{"url":"https://docs.spreadsheet-importer.com/ui5/pages/CdsPlugin/","title":"Spreadsheet Importer documentation — CAP CDS Plugin","checked":"2026-09-18","quote":"the entire Excel file is sent to the backend, where it's processed efficiently"},{"url":"https://github.com/spreadsheetimporter/cds-spreadsheetimporter-plugin","title":"spreadsheetimporter/cds-spreadsheetimporter-plugin — README","checked":"2026-09-18","quote":"When at least one entity is annotated, the importer rejects uploads for every other entity with 403 SPREADSHEET_IMPORT_ENTITY_NOT_ENABLED."}]}],"drafted_with_ai":true,"contributors":["actor:lemaiwo","actor:marianfoo"]},"effective_normative_relations":[{"instrument":"instrument:sap-developer-license-3-2-cap","relation":"use-constrained-by","sections":["1","2","3"],"applies_when":"A cds-plugin is used with SAP CAP materials, or an artifact is explicitly identified as a CAP plugin or application.","note":"This is inherited applicability, not a licence verdict about the artifact itself. Review the agreement for the actual materials and use; an explicit artifact relationship to another revision takes precedence.","scope":{"kind":"artifact"},"sources":[{"url":"https://cap.cloud.sap/resources/license/developer-license-3_2_CAP.txt","title":"SAP Developer License Agreement 3.2 CAP","checked":"2026-09-16","quote":"documentation, plug-ins, templates, scripts and sample code, libraries, software development kits"}],"inherited_from":"cap-plugins-and-applications","relevant_capabilities":["agent-systems-access","async-processing","data-import-export","database-connectors","deployment","destinations","llm-integration","mcp-servers","plugin-authoring","replication","retrieval-augmented-generation","rfc-connectivity"]}],"readings":{"liveness":[{"label":"Maintenance","tier":"fair","evidence":"4 months since release"},{"label":"Continuity","tier":"good","evidence":"3 contributors, 2 publishers, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-06, not archived"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":">=7 — includes cds 10 and 9"},{"label":"Survived majors","tier":"poor","evidence":"no release since @sap/cds 10 shipped (July 2026)"},{"label":"Maintainer's CI","tier":"good","evidence":"Jest Tests green, 2026-06-16"}],"practice":[{"label":"Tests","tier":"good","evidence":"21 test files, npm test"},{"label":"Docs","tier":"good","evidence":"docs site, README 3 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":37,"unit":"installs/week"},{"value":4,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","latest_version":"1.1.0","majors":{"1":{"version":"1.0.0","date":"2024-11-16"}},"license":"ISC","first_release":"2024-11-16","last_release":"2026-06-16","releases":5,"cadence_days":137,"maintainers":2,"repository":"git+https://github.com/spreadsheetimporter/cds-spreadsheetimporter-plugin.git","repository_directory":null,"peer_cds":">=7","test_script":true,"types":false,"downloads_weekly":37,"stars":4,"forks":1,"open_issues":0,"archived":false,"pushed_at":"2026-06-16","license_spdx":null,"org_owned":true,"default_branch":"main","contributors":3,"tree_truncated":false,"test_files":21,"workflows":2,"other_ci":false,"readme_bytes":2869,"docs_files":0,"changelog":true,"license_file":false,"dts_files":0,"first_commit":"2024-11-16","last_commit":"2026-06-16","commits":17,"ci_status":"success","ci_run_at":"2026-06-16","ci_workflow":"Jest Tests","ci_event":"push","readme_path":"README.md","readme_sha":"e07aa24edba00791196feae674de5a63d08a078d","months_since_release":4,"dormant":false,"dependencies":1,"node_engine":null,"downloads_monthly":223,"created_at":"2024-11-16T21:53:46Z","open_prs":0,"repo_read":"2026-10-24"},"release_notes":{"license":"ISC","quotable":true,"source":{"kind":"npm","path":"CHANGELOG.md","version":"1.1.0","url":"https://github.com/spreadsheetimporter/cds-spreadsheetimporter-plugin/blob/main/CHANGELOG.md"},"format":"conventional","releases":[{"version":"1.1.0","date":"2026-06-16","date_source":"heading","heading":"1.1.0 (2026-06-16)","url":"https://github.com/spreadsheetimporter/cds-spreadsheetimporter-plugin/blob/main/CHANGELOG.md#110-2026-06-16","sections":[{"kind":"feature","heading":"Features","items":1}],"hash":"d8f6667010ae98d6"},{"version":"1.0.3","date":"2025-04-05","date_source":"heading","heading":"1.0.3 (2025-04-05)","url":"https://github.com/spreadsheetimporter/cds-spreadsheetimporter-plugin/blob/main/CHANGELOG.md#103-2025-04-05","sections":[{"kind":"fix","heading":"Bug Fixes","items":1}],"hash":"533b83e7d3d7be14"},{"version":"1.0.2","date":"2024-11-19","date_source":"heading","heading":"1.0.2 (2024-11-19)","url":"https://github.com/spreadsheetimporter/cds-spreadsheetimporter-plugin/blob/main/CHANGELOG.md#102-2024-11-19","sections":[{"kind":"fix","heading":"Bug Fixes","items":1}],"hash":"6cd1f60168ffa085"},{"version":"1.0.1","date":"2024-11-19","date_source":"heading","heading":"1.0.1 (2024-11-19)","url":"https://github.com/spreadsheetimporter/cds-spreadsheetimporter-plugin/blob/main/CHANGELOG.md#101-2024-11-19","sections":[{"kind":"fix","heading":"Bug Fixes","items":1}],"hash":"a241c51b755161b2"},{"version":"1.0.0","date":"2024-11-16","date_source":"heading","heading":"1.0.0 (2024-11-16)","url":"https://github.com/spreadsheetimporter/cds-spreadsheetimporter-plugin/blob/main/CHANGELOG.md#100-2024-11-16","sections":[{"kind":"feature","heading":"Features","items":1}],"hash":"65c51025f3ef1692"}],"versions":[{"version":"1.1.0","date":"2026-06-16"},{"version":"1.0.3","date":"2025-04-05"},{"version":"1.0.2","date":"2024-11-19"},{"version":"1.0.1","date":"2024-11-19"},{"version":"1.0.0","date":"2024-11-16"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"},{"ref":"actor:spreadsheetimporter","name":"Spreadsheet Importer","json":"/actors/spreadsheetimporter.json"},{"ref":"actor:lemaiwo","name":"Wouter Lemaire","json":"/actors/lemaiwo.json"}],"contributors":[{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"},{"ref":"actor:lemaiwo","name":"Wouter Lemaire","json":"/actors/lemaiwo.json"}],"explained_by":[{"ref":"content:create-your-first-cap-plugin","name":"Create your first CAP plugin","json":"/content/create-your-first-cap-plugin.json"}],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}