{"ref":"artifact:spreadsheetimporter-sample-full-btp","page":"/artifacts/spreadsheetimporter-sample-full-btp","json":"/artifacts/spreadsheetimporter-sample-full-btp.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"spreadsheetimporter-sample-full-btp","name":"spreadsheetimporter/sample-full-btp","artifact_type":"sample","ecosystem":"cap","serves_ecosystems":["ui5"],"use_as":"starting-point","domain":"data-and-persistence","origin_ring":"community-org","description":{"one_line":"A CAP project with Risks and Mitigations, two Fiori elements apps and a Spreadsheet Upload button in the risks list report, packaged as an MTA for Cloud Foundry.","short":"CAP Risks and Mitigations project with a Spreadsheet Upload button","what_it_solves":"A CAP service over Risks and Mitigations with two Fiori elements apps on top, where the risks list report carries a Spreadsheet Upload button that creates [ui5-cc-spreadsheetimporter](artifact:spreadsheetimporter-ui5-cc-spreadsheetimporter) as a component usage and opens its dialog on the table. What it adds to the organisation's other examples is the deployment: an mta.yaml that builds the service and both apps and binds a HANA HDI container, an XSUAA instance carrying RiskManager and RiskViewer role collections, the destination service and the HTML5 application repository the two apps are then served from. Nothing on the CAP side parses a file: the project runs on [@sap/cds](artifact:sap-cds) 8 with no importer plugin, and the dialog submits its rows to the app's own OData V4 service. The manifest names the usage cc.spreadsheetimporter.v0_29_0 while app/risks/package.json installs the component at ^2.0.0. Its README is the CAP template's getting-started text, and package.json declares the project UNLICENSED, with no licence file in the repository."},"links":{"repo":"https://github.com/spreadsheetimporter/sample-full-btp"},"identity":{"license":"UNLICENSED, as package.json declares it; the repository carries no licence file"},"source_available":true,"demonstrates":["capability:data-import-export"],"requires":[{"ref":"artifact:spreadsheetimporter-ui5-cc-spreadsheetimporter","for":"The Spreadsheet Upload button in the risks list report opens the component's dialog: the app lists the component under its dependencies and an extension controller creates the usage before calling openSpreadsheetUploadDialog.","requirement":"required","sources":[{"url":"https://raw.githubusercontent.com/spreadsheetimporter/sample-full-btp/main/app/risks/webapp/manifest.json","title":"spreadsheetimporter/sample-full-btp — app/risks/webapp/manifest.json","checked":"2026-09-25","quote":"\"cc.spreadsheetimporter.v0_29_0\": {}"},{"url":"https://raw.githubusercontent.com/spreadsheetimporter/sample-full-btp/main/app/risks/package.json","title":"spreadsheetimporter/sample-full-btp — app/risks/package.json","checked":"2026-09-25","quote":"\"ui5-cc-spreadsheetimporter\": \"^2.0.0\""}]}],"compat":{"runtimes":["node"],"cds_range":"^8","deployment":["cf"]},"type_properties":{"form":{"value":"reference-application","sources":[{"url":"https://github.com/spreadsheetimporter/sample-full-btp","title":"spreadsheetimporter/sample-full-btp — README","checked":"2026-10-18","quote":"A CAP project with Risks and Mitigations, two Fiori elements apps and a Spreadsheet Upload button in the risks list report"}]}},"provenance":{"discovered_via":[{"source":"source:curator","channel":"spreadsheetimporter organisation repositories"}],"first_seen":"2026-09-25"},"drafted_with_ai":true,"maintainers":["actor:spreadsheetimporter"],"contributors":["actor:gregorwolf","actor:lemaiwo","actor:marianfoo"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"3 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-04, not archived"}],"compatibility":[{"label":"Declared for","tier":"poor","evidence":"^8 — stops before cds 9"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"17 test files"},{"label":"Docs","tier":"poor","evidence":"README 1 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":0,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","npm":"not published under this name","stars":0,"forks":1,"open_issues":0,"archived":false,"pushed_at":"2026-04-10","license_spdx":null,"org_owned":true,"default_branch":"main","created_at":"2023-12-18T10:19:44Z","open_prs":0,"tree_truncated":false,"test_files":17,"workflows":0,"other_ci":false,"readme_bytes":609,"docs_files":0,"changelog":false,"license_file":false,"dts_files":0,"first_commit":"2023-10-31","last_commit":"2026-04-10","commits":20,"contributors":3,"readme_path":"README.md","readme_sha":"95de4bbaf21b318f2ce0da48215032082b6904ce","repo_read":"2026-10-24"},"edges":{"maintainers":[{"ref":"actor:spreadsheetimporter","name":"Spreadsheet Importer","json":"/actors/spreadsheetimporter.json"}],"contributors":[{"ref":"actor:gregorwolf","name":"Gregor Wolf","json":"/actors/gregorwolf.json"},{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"},{"ref":"actor:lemaiwo","name":"Wouter Lemaire","json":"/actors/lemaiwo.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}