{"ref":"artifact:sap-project-kernseife-btp-app","page":"/artifacts/sap-project-kernseife-btp-app","json":"/artifacts/sap-project-kernseife-btp-app.json","generated":"2026-10-30","drafted_with_ai":true,"entity":{"id":"sap-project-kernseife-btp-app","name":"Kernseife BTP App","artifact_type":"app","ecosystem":"abap","serves_ecosystems":["btp"],"domain":"operations-and-runtime","secondary_domains":["developer-experience"],"origin_ring":"sap-official","use_as":"dependency","description":{"one_line":"The BTP side of [Project Kernseife](artifact:sap-project-kernseife): a CAP application with Fiori apps where the classification is maintained and the ATC findings exported from the system are read back per system.","short":"Holds the custom classification and reports imported ATC findings","what_it_solves":"A CAP application deployed into a Cloud Foundry subaccount and reached through a SAP Build Work Zone site, where the classification [the ATC check](artifact:sap-project-kernseife) scores against is written and where its findings are read. The Settings app does the initial setup, the customer details and the systems; the Jobs app takes the CSV exported from CDS view `ZKNSF_I_EXPORT` through its \"Findings Import (CSV)\" action against the system the run came from, and the imported development objects then appear in the Custom Code and Overview apps. The two halves meet in that file: the check runs in the ABAP system, and its findings reach the app as a CSV import. No standalone approuter is deployed — the integrated one inside Work Zone serves the apps, and a user sees them once assigned the site role and the `kernseife-admin-${space}` role. Where the BTP setup is out of reach, the same information can be read in the ABAP system from CDS view `ZKNSF_I_DEVELOPMENT_OBJECTS`.","when_not_to_use":"There is no hosted tenant: the application is built from the repository and deployed into a subaccount of your own, which needs Cloud Foundry runtime memory, a HANA Cloud instance for an HDI container, five bound services and a SAP Build Work Zone subscription on the Standard (Application) plan. The ATC check works without it, and the maintainers note that deviating from the ratings they supply switches off features such as the default classification logic.","to_build_on_it":"The CAP project sits under `btp/` with its own mta build, `.mtaext` files that differ for development and production in db service name and service plans, and a GitHub Actions workflow for automated builds and deployments. The repository documents the Node version, the dependency overrides it carries and the advisory still open against a transitive Cloud SDK dependency."},"links":{"repo":"https://github.com/SAP/project-kernseife/tree/main/btp","docs":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide"},"maintainers":["actor:sap"],"part_of":{"ref":"artifact:sap-project-kernseife","sources":[{"url":"https://github.com/sap/project-kernseife","title":"SAP/project-kernseife — README, release note","checked":"2026-10-26","quote":"Version 1.5.x is out with major authorization changes for the BTP App."},{"url":"https://github.com/SAP/project-kernseife/wiki","title":"SAP/project-kernseife Wiki — Home","checked":"2026-10-26","quote":"How do I install Kernseife? ABAP Installation Guide BTP Installation Guide"}]},"provides":[{"capability":"capability:abap-cloud-readiness","what_it_does":"Holds the custom classification that the ATC check scores against and produces its JSON file, and imports the findings of a check run as CSV per system, showing each development object and its level in the Custom Code and Overview apps.","sources":[{"url":"https://github.com/SAP/project-kernseife/wiki/ABAP-Installation-Guide","title":"SAP/project-kernseife Wiki — ABAP Installation Guide, Upload Classification Json","checked":"2026-10-26","quote":"As the main purpose is to create a custom classification, we encourage you to leverage the CAP application to create a classification JSON file according to your needs."},{"url":"https://github.com/SAP/project-kernseife/wiki/Scoring-&-Development-Object-Guide","title":"SAP/project-kernseife Wiki — Scoring & Development Object Guide","checked":"2026-10-26","quote":"Open the \"Jobs\" App and import the csv using the \"Findings Import (CSV)\" Import Action."},{"url":"https://github.com/SAP/project-kernseife/wiki/Scoring-&-Development-Object-Guide","title":"SAP/project-kernseife Wiki — Scoring & Development Object Guide","checked":"2026-10-26","quote":"Once the import is finished, you should be able to see the Development Objects in either the \"Custom Code\" App or the \"Overview\" App."}]}],"requires":[{"ref":"artifact:btp-cloud-foundry-runtime","for":"The runtime the application is deployed into: a subaccount with Cloud Foundry enabled and at least 2 GB of application runtime.","requirement":"required","basis":"binding","role":"runtime","sources":[{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Required BTP Resources","checked":"2026-10-26","quote":"BTP Sub-Account with Cloud Foundry enabled min. 2 GB of Application Runtime A HANA Cloud instance which can be used for a HDI Container"}]},{"ref":"artifact:btp-hana-cloud","for":"The database behind the application: an instance that can host the HDI container the db module is deployed into, bound on the hdi-shared plan.","requirement":"required","basis":"binding","role":"database","sources":[{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Required BTP Resources","checked":"2026-10-26","quote":"BTP Sub-Account with Cloud Foundry enabled min. 2 GB of Application Runtime A HANA Cloud instance which can be used for a HDI Container"},{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Required Services","checked":"2026-10-26","quote":"SAP HANA Schemas & HDI Containers hana hdi-shared"}]},{"ref":"artifact:btp-authorization-and-trust-management","for":"The authentication and the roles behind the apps, bound on the application plan; version 1.5.0 changed the authorizations the BTP app uses.","requirement":"required","basis":"binding","role":"authentication","sources":[{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Required Services","checked":"2026-10-26","quote":"Authorization and Trust Management Service xsuaa application Always Free"},{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Post-Deployment Setup","checked":"2026-10-26","quote":"Assign your user to the role kernseife-admin-${space} (space name dependent)"}]},{"ref":"artifact:btp-html5-application-repository","for":"Where the built Fiori apps are stored, bound on the app-host plan and picked up in Work Zone's Channel Manager and Content Explorer.","requirement":"required","basis":"binding","role":"ui-hosting","sources":[{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Required Services","checked":"2026-10-26","quote":"HTML5 Application Repository Service html5-apps-repo app-host Always Free"}]},{"ref":"artifact:btp-destination","for":"One of the services the installation guide lists as required, on the lite plan.","requirement":"required","basis":"binding","sources":[{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Required Services","checked":"2026-10-26","quote":"Destination Service destination lite Always Free"}]},{"ref":"artifact:btp-application-autoscaler","for":"One of the services the installation guide lists as required, on the standard plan.","requirement":"required","basis":"binding","role":"scaling","sources":[{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Required Services","checked":"2026-10-26","quote":"Application Autoscaler autoscaler standard Always Free"}]},{"ref":"artifact:btp-cloud-logging","for":"Where the application's logs go, on the dev plan, with the standard plan named for production.","requirement":"required","basis":"binding","role":"logging","sources":[{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Required Services","checked":"2026-10-26","quote":"Cloud Logging cloud-logging dev Use \"standard\" plan for Production"}]},{"ref":"artifact:btp-application-logging","for":"The logging service the guide states is still supported where the deployment uses it instead of Cloud Logging.","requirement":"conditional","basis":"binding","role":"logging","condition":"the legacy Application Logging service is bound in place of Cloud Logging","sources":[{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Required Services","checked":"2026-10-26","quote":"While the legacy Application Logging Service is supported, we recommend using Cloud Logging as it's the strategic successor."}]},{"ref":"artifact:btp-build-work-zone-standard","for":"The site the apps are published to and the entry point in front of them: the guide deploys no standalone approuter and uses the one integrated in Work Zone, on the Standard (Application) plan.","requirement":"required","basis":"binding","role":"launchpad","sources":[{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, Required Subscriptions","checked":"2026-10-26","quote":"Required Subscriptions SAP Build Work Zone, standard edition Plan: Standard (Application)"},{"url":"https://github.com/SAP/project-kernseife/wiki/BTP-Installation-Guide","title":"SAP/project-kernseife Wiki — BTP Installation Guide, SAP Build Work Zone Configuration","checked":"2026-10-26","quote":"As we don't use a standalone approuter we use the integrated one inside workzone."}]}],"provenance":{"discovered_via":[{"source":"source:github"}],"first_seen":"2026-10-26"},"drafted_with_ai":true,"contributors":["actor:andreasmuenster","actor:daniel-huser","actor:likweitan","actor:lukasbretschneider","actor:mrkskpfr"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"13 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"fair","evidence":"workflows present, no completed run on the default branch"}],"practice":[{"label":"Tests","tier":"good","evidence":"15 test files"},{"label":"Docs","tier":"good","evidence":"docs site, README 3 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":99,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-29","npm":"not published under this name","stars":99,"forks":24,"open_issues":30,"archived":false,"pushed_at":"2026-10-27","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2025-02-27T09:41:11Z","open_prs":18,"tree_truncated":false,"test_files":15,"workflows":1,"other_ci":false,"readme_bytes":2833,"docs_files":0,"changelog":false,"license_file":true,"dts_files":3,"first_commit":"2025-05-16","last_commit":"2026-10-26","commits":127,"contributors":13,"readme_path":"btp/README.md","readme_sha":"4854c27dc530960bc61f7c81f7da97ff74059b18","repo_read":"2026-10-29"},"edges":{"maintainers":[{"ref":"actor:sap","name":"SAP","json":"/actors/sap.json"}],"contributors":[{"ref":"actor:andreasmuenster","name":"andreasmuenster","json":"/actors/andreasmuenster.json"},{"ref":"actor:daniel-huser","name":"Daniel Huser","json":"/actors/daniel-huser.json"},{"ref":"actor:likweitan","name":"Lik Wei","json":"/actors/likweitan.json"},{"ref":"actor:lukasbretschneider","name":"Lukas Bretschneider","json":"/actors/lukasbretschneider.json"},{"ref":"actor:mrkskpfr","name":"Markus Kapfer","json":"/actors/mrkskpfr.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"part_of":{"ref":"artifact:sap-project-kernseife","name":"Project Kernseife","json":"/artifacts/sap-project-kernseife.json"},"parts":[],"add_ons":[],"answered_through_parts":[]}}