{"ref":"artifact:sap-samples-cloud-cf-feature-flags-sample","page":"/artifacts/sap-samples-cloud-cf-feature-flags-sample","json":"/artifacts/sap-samples-cloud-cf-feature-flags-sample.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-cloud-cf-feature-flags-sample","name":"SAP-samples/cloud-cf-feature-flags-sample","artifact_type":"sample","ecosystem":"btp","use_as":"starting-point","domain":"operations-and-runtime","origin_ring":"sap-official","description":{"one_line":"A Spring Boot demo application on Cloud Foundry that evaluates boolean and string feature toggles against the SAP BTP Feature Flags service and exposes the result through a web UI.","short":"Spring Boot demo evaluating a toggle from the Feature Flags service","what_it_solves":"Consuming the Feature Flags service means binding to it, reading `VCAP_SERVICES`, and calling out to evaluate a flag, and this sample walks through exactly that with a Spring Boot application on Cloud Foundry. It implements a feature toggle, evaluated against the bound service instance, and exposes it through a web form as well as a `/vcap_services` REST endpoint that echoes the injected binding credentials. The walkthrough covers boolean and string flags, including a direct-delivery strategy that targets a variation at a named identifier such as `friends-and-family`. It stops at the demo UI: there is no persistence or business logic beyond the evaluation call itself."},"links":{"repo":"https://github.com/SAP-samples/cloud-cf-feature-flags-sample"},"type_properties":{"form":{"value":"reference-application","sources":[{"url":"https://github.com/SAP-samples/cloud-cf-feature-flags-sample","title":"SAP-samples/cloud-cf-feature-flags-sample — README","checked":"2026-10-18","quote":"A Spring Boot demo application that evaluates a feature toggle against the SAP BTP Feature Flags service and exposes the result through a web UI."}]}},"identity":{"license":"Apache-2.0"},"maintainers":["actor:sap-samples"],"source_available":true,"demonstrates":["capability:feature-toggles"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-13"},"contributors":["actor:ajinkyapatil8190","actor:dzahariev","actor:ialidzhikov","actor:joysie","actor:nickymateev","actor:petar-iv","actor:steinermatt"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"7 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-06, not archived"}],"compatibility":[{"label":"Declared for","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Survived majors","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"4 test files"},{"label":"Docs","tier":"good","evidence":"README 16 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":20,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":20,"forks":7,"open_issues":1,"archived":false,"pushed_at":"2026-06-25","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2017-08-28T12:16:30Z","open_prs":1,"tree_truncated":false,"test_files":4,"workflows":0,"other_ci":false,"readme_bytes":15946,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2017-08-28","last_commit":"2026-06-25","commits":20,"contributors":7,"readme_path":"README.md","readme_sha":"a1d267c676f44e9f7a12e8dbad65d8a3b81f51db","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:ajinkyapatil8190","name":"Ajinkya Patil","json":"/actors/ajinkyapatil8190.json"},{"ref":"actor:dzahariev","name":"Dobromir Zahariev","json":"/actors/dzahariev.json"},{"ref":"actor:joysie","name":"Gergana Coffman","json":"/actors/joysie.json"},{"ref":"actor:ialidzhikov","name":"Ismail Alidzhikov","json":"/actors/ialidzhikov.json"},{"ref":"actor:steinermatt","name":"Matthias Steiner","json":"/actors/steinermatt.json"},{"ref":"actor:nickymateev","name":"Nikolay Mateev","json":"/actors/nickymateev.json"},{"ref":"actor:petar-iv","name":"petar-iv","json":"/actors/petar-iv.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}